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,在比較以前將字符串和布爾值都轉爲數字