值 | 转换为字符串 | 数字 | 布尔 | 对象 |
undefined | “undefined” | NaN | false | Throws TypeError |
null | “null” | 0 | false | Throws TypeError |
true | “true” | 1 | true | new Boolean(true) |
false | “false” | 0 | false | 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]一个数字元素 | “9” | 9 | true |
|
[‘a’](其它数组) | 使用 join | NaN | true |
|
Function(){}任意函数 |
| NaN | true |
|
原始值到原始值比较简单
原始值到布尔:null,undefined,0,-0,NaN,””为false,其它为true.
原始值到数字:ture->1,flase->0,undefined->NaN,null->0,“”空串->0 其它字符字符串可以直接转,转不了的为(开始和结尾是由非任意非空格字符都不会当成数字直接量的一部分,进而造成字符串转换为数字的结果为:NaN)
原始值到字符串:见上表
原始值到对象:相应的包装类,null和undefined例外
对象到原始的转换相对比较复杂,后续学习中会提及