javaScript的数据类型分为原始类型和对象类型,原始类型包括null、undefined、布尔类型、字符串、数字,对象类型是属性的集合,每个属性都是由”名/值对“构成。
原始类型和对象类型之间的类型转换如下表格:
值 | 字符串 | 数字 | 布尔值 | 对象 |
---|---|---|---|---|
undefined | “undefined” | NaN | false | throws TypeError |
null | “null” | 0 | false | throws 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] | “9” | 9 | true | |
[1,2,3] | “1,2,3” | NaN | ||
[“a”] | “a” | NaN | true | |
function(){} | 参考下面的链接 | NaN | true |
原始值通过调用String()、Number()、Boolean()构造函数,转换为他们各自的包装对象。null和undefined返回类型错误异常。
对象到布尔值的转换:所有的对象转换为布尔值都为true,new Boolean(false)转换为true。
对象到字符串和数字的转换及函数到字符串的转换可参考(http://blog.csdn.net/fxss5201/article/details/60780679)