值 |
转换为字符串 |
数字 |
布尔 |
对象 |
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例外
对象到原始的转换相对比较复杂,后续学习中会提及