数据类型


基础类型 NumberStringBooleanNullundefinedSymbol(es6)

引用类型 ObjectArrayFunctionDateRegExp

注意

Symbol 类型的对象永远不相等,即便创建的时候传入相同的值

数据类型转换结果:

  • (1)、Number 转换严格,只要一个字符无法转换,整个字符会被转换成NaN。特殊:null转为0
  • (2)、parseInt 从左往右解析,如果第一个字符不能解析为数值,则返回NaN。如果第一个字符可以解析则,则返回到不能解析字符位置的数值
  • (3)、String 可以转换null和undefined。特殊:object转[object Object]
  • (4)、toString 无法转换null和undefined。特殊:object转[object Object]
  • (5)、Boolean ' '转换为true,其它都是false
NumberparseIntStringtoStringBoolean
undefinedNaNNaN'undefined'errorfalse
null0NaN'null'errorfalse
000'0''0'false
'0'00'0''0'true
-000'0''0'false
''0NaN''''false
' '0NaN' '''true
0.000'0.0''0.0'false
NaNNaNNaN'NaN''NaN'false
true1NaN'true''true'true
false0NaN'false''false'false
'0123'123123'0123''0123'true
'1234king'NaN1234'1234king''1234king'true
'king1234'NaNNaN'king1234''king1234'true
[]0NaN''''true
[2]22'2''2'true
[[2]]22'2''2'true
[1,2]NaN1'1,2''1,2'true
{}NaNNaN[object Object][object Object]true
let f1 = function(){}NaNNaN'function(){}''function(){}'true
let f2 = (a) => {}NaNNaN'(a) => {}''(a) => {}'true
function f3(){}NaNNaN'function f3(){}''function f3(){}'true