2

类型转换

隐式类型转换

基本运算符

/ - % ++ -- == !=

上面的运算符都会触发隐式类型转换.

特殊的+

优先进行 字符串连接 操作.

var  a = '20';
typeof (+a) ; // Number  20;
var  a = '20';
var  b = 20;
typeof (a+b) ; // String  2020;

强制类型转换

Boolean(value)

当要转换的值是至少有一个字符的字符串、非 0 数字或对象时,Boolean() 函数将返回 true。

如果该值是空字符串、数字 0、undefined 或 null,它将返回 false。

var b1 = Boolean("");        //false - 空字符串
var b2 = Boolean("hello");        //true - 非空字符串
var b1 = Boolean(50);        //true - 非零数字
var b1 = Boolean(null);        //false - null
var b1 = Boolean(0);        //false - 零
var b1 = Boolean(new object());    //true - 对象

Number() 函数

转换的是整个值,而不是部分值.(这就是与parseIntparseFloat 不同之处)

栗子:

Number('11hi');// NaN
parseInt('11hi'); // 11
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number("1.2") 1.2
Number("12") 12
Number("1.2.3") NaN
Number(new object()) NaN
Number(50) 50

String() 函数

把任何值转换成字符串

toString的区别

使用 String()时, null undefined 值强制类型转换可以生成字符串而不引发错误:

调用toString()时, null undefined 发生错误.

栗子:

String(null);// 'null'
String(undefined) // 'undefined'

null.toString(); // 报错
undefined.toString(); // 报错

sdbxpjzq
150 声望3 粉丝

人生就像写代码,每一次成长就是一次更新,每一次收获就是一个迭代。所以...得写好代码,写好人生(就算现在写不出好的代码,可至少有一颗迭代的心),付出才可能有回报。