类型转换
隐式类型转换
基本运算符
/
-
%
++
--
==
!=
上面的运算符都会触发隐式类型转换.
特殊的+
优先进行 字符串连接 操作.
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() 函数
转换的是整个值,而不是部分值.(这就是与parseInt
和 parseFloat
不同之处)
栗子:
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(); // 报错
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。