js类型转换比较表格

JavaScript类型转换表格

 值 转换为      
  字符串 数字 布尔值 对象
undefined "undefined" NaN false throw TypeError
null "null" 0 false throw TypeError
true "true" 1   new Boolean(true)
false "false" 0   new Boolean(false)
""(空字符串)   0 false new String("")
"1.2"(非空,数字)   1.2 true new String("1.2")
"one"(非空,非数字)   NaN true new String("one")
0 "0"   false new Number(0)
-0 "0"   false new Number(-0)
NaN "NaN"   false new Number(NaN)
Infinity "Infinity"   true new Number(Infinity)
-Infinity "-Infinity"   true new Number(-Infinity)
1(无穷大,非零) "1"   true new Number(1)
{}(任意对象) -- -- true  
[](任意数组) "" 0 true  
[9](1个数字元素) "9" 9 true  
['a'](其他数组) 使用join()方法 NaN true  
function(){}(任意函数) -- NaN true  

由于JavaScript可以做灵活的类型转换,因此”==“运算符也灵活多变:

null == undefined //true,可以参考上表,在比较之前null转换为false,undefined转换为false,所以相等
"0" == 0 //true,在比较之前将字符串转为数字
0 == false //true,在比较之前将布尔值转为数字
"0" == false //true,在比较之前将字符串和布尔值都转为数字
posted @ 2019-04-27 22:32  消逝的风i  阅读(554)  评论(0编辑  收藏  举报