JavaScript 的数据类型分为两类,原始类型(包含数字、字符串、布尔值、null、undefined)和对象类型(包含数组、函数)。作为一种面向对象的语言, JavaScript 数据类型本身可以定义方法,但是 null 、undefined 除外。下面是 JavaScript 中常用数据类型转换对照表:
| 原始值 | 字符串 | 数字 | 布尔值 | 对象 |
|---|---|---|---|---|
| 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.23"(非空,数字) | 1.23 | true | new String("1.23") | |
| "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) | |
| {}(任意对象) | 注释 1 | 注释 2 | true | |
| [](任意数组) | "" | 0 | true | |
| 9(一个数字元素) | "9" | 9 | true | |
| ['a'](其他数组) | 使用join()方法 | NaN | true | |
| function(){}(任意函数) | 注释 3 | NaN | true |
注释 1:对象→字符串,先 toString() 方法,再 toValue() 方法。
注释 2:对象→数字,先 toValue() 方法,再 toString() 方法。
注释 3:函数作为一种特殊的对象,在进行类型转换时需注意关系运算符的使用。













