Javascript数据类的转换以及字符串的特别说明


JS的数据类转换分为隐式转换与显示转换

隐式转换:

通常用于if判断等需要直接结果的地方。

  undefined == null; // true
  1 == true; // true
  2 == true; // false
  0 == false; // true
  0 == ''; // true
  NaN == NaN; // false ---> NaN 注意:这是JS中一个特殊的表示,NaN表示不等于任何值.这个数值表示本
  来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。任何数值除以0都会导致错误而终止程序执
  行。一般使用isNaN()来判断是否为NaN类型.
  [] == false; // true
  [] == ![]; // true
  '6' - '3' // 3
  1234 + 'abcd' // "1234abcd"

1. undefined与null相等,但不恒等(===)
2. 一个是number一个是string时,会尝试将string转换为number
3. 隐式转换将boolean转换为number,0或1
4. 隐式转换将Object转换成number或string,取决于另外一个对比量的类型
5. 对于0、空字符串的判断,建议使用 “===”
6. “==”会对不同类型值进行类型转换再判断,“===”则不会.它会先判断两边的值类型,类型不匹配时直接为false

 

 

显示转换:

Number:

var a = Number('1');
var b = Number(1);
var c = Number('c');
var d = Number(null);
var e = Number(undefined);
console.log(a,b,c,d,e); // 1 1 NaN 0 NaN
Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN

String:

String(1234); // "1234"
String('abcd'); // "abcd"
String(true); // "true"
String(undefined); // "undefined"
String(null); // "null"

 

Boolean:

var a = Boolean('0');
var b = Boolean(0);
var c = Boolean('1');
var d = Boolean(null);
var e = Boolean(undefined);
var f = Boolean(NaN);
console.log(a,b,c,d,e,f); //true false true false false false
0、''(空字符串) 、null、 undefined 、NaN 会转换成false 其它都会转换成true

 

parseFolat:

var a = parseFloat('1.2df'); //1.2
var b = parseFloat('1.3.4'); //1.3
var c = parseFloat('c12'); //NaN
var d = parseFloat(null); //NaN
var e = parseFloat(undefined); //NaN
console.log(a,b,c,d,e);
parseFloat() 把字符串转换成浮点数
parseFloat()和parseInt非常相似,
不同之处在与parseFloat会解析第一个 . 遇到第二个.或者非数字结束
如果解析的内容里只有整数,解析成整数

parseint:

var a = parseInt('1.2df'); //
var b = parseInt(1);
var c = parseInt('c12');
var d = parseInt(null);
var e = parseInt(undefined);
console.log(a,b,c,d,e); //1 1 NaN NaN NaN
如果第一个字符是数字会解析,直到遇到非数字结束
如果第一个字符不是数字或者符号就返回NaN

 

 

字符串的特别说明:

1,单引号和双引号均可解析转义字符(/n,/t,/r等)

2,单引号和双引号均不可解析变量

3,变量与字符串,变量与变量要用+来拼接,不同于PHP

4,单引号和双引号可以互相嵌套,如果单引号中嵌套单引号,需要将单引号转义,双引号也是一样

 

单引号和双引号为什么不能解析变量?

因为JS跟别的语法不同,例如:alert('a'),这时它会懵逼,到底弹框是一个变量还是字符串?别的语法可以用$来区分变量与字符串,JS不可以

 

变量与字符串拼接说明:

‘hello’+3+‘world’    //hello3world

3+2+‘hello’+5+‘world’    //5hello5world   左往右连接,两个数字会理解为加号,知道碰见不是数值则视为拼接

字符串长度属性 :

length属性可以用来获取字符串的长度

var str = 'Hello World';
console.log(str.length);  

 

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告