JS的数据类型
最新的ECMAScript定义了 7 种数据类型
原始类型:
类型 | 值 |
---|---|
Boolean | 布尔基本类型 |
Null | Null |
Undefined | Undefined |
Number | 数值基本类型 |
String | 字符串基本类型 |
Symbol | 字面量基本类型 |
对象:
类型 | 值 |
---|---|
Object | {key:value} |
显式类型转换
Number函数
类型 | 结果 |
---|---|
数值 | 转换后还是原来值 |
字符串 | 如果可以被解析为数值,则为数值,否则为NaN,空字符串为0 (Number(“113ajdajadss”)//NaN)(Number.parseInt(“113ajdajadss”) /// 113) |
布尔值 | true为1,false为0 |
undefined | NaN |
null | 0 |
String函数
类型 | 结果 |
---|---|
数值 | 对应字符串 |
字符串 | 原来字符串 |
布尔 | true为”true”,false为”false” |
undefined | “undefined” |
null | “null” |
Boolean函数
类型 | 结果 |
---|---|
undefined | false |
null | false |
-0 | false |
0 | false |
+0 | false |
NaN | false |
“”(空字符串) | false |
其余 | true |
隐式类型转换
触发隐式转换 | 例句 |
---|---|
四则运算 | 加减乘除 |
判断语句 | if() |
Native调用 | console.log(),输入时会自动转换成string类型 |
常见特殊类型转换
转换条件 | 转换后类型 | 结果 |
---|---|---|
[]+[] | String | “” |
[1,2]+[3,4] | String | “1,23,4” |
[]+{} | String | “[object Object]” |
[1,2] + {a:1} | String | “1,2[object Object]” |
{}+[] | Number | 0 |
{}+[1] | Number | 1 |
{a:1}+[1,2] | Number | NaN |
{a:1}+{b:2} | Chrome - String | “[object Object][object Object]” (背后实现eval) |
{a:1}+{b:2} | Firefox - Number | NaN |
true+true | Number | 2 |
1+{a:1} | String | “1[object Object]” |