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:函数作为一种特殊的对象,在进行类型转换时需注意关系运算符的使用。