javascript 六种基本数据类型转换
1、显式转换
通过手动进行类型转换,Javascript提供了以下转型函数:
转换为数值类型:Number(mix)、parseInt(string,radix)、parseFloat(string)
转换为字符串类型:toString(radix)、String(mix)
转换为布尔类型:Boolean(mix)
2、隐身转换
用于检测是否为非数值的函数:isNaN(mix)
递增递减操作符(包括前置和后置)、一元正负符号操作符
加法运算操作符
连接操作符
乘除、减号运算符、取模运算符
逻辑操作符(!、&&、||)
关系操作符(<, >, <=, >=)
相等操作符(==)
3、转换规则
|
字符串 |
数字 |
布尔 |
数组 |
对象 |
null |
undefined |
字符串 |
- |
如果字符串中只包含数字,则将其转换为十进制(忽略前导0) 如果字符串中包含有效的浮点格式,将其转换为浮点数值(忽略前导0) 如果是空字符串,将其转换为0 如果字符串中包含非以上格式,则将其转换为NaN |
非空会转换为true,空字符串会转换为false |
单个元素的数组 |
例子 Object("12") String {0: "1", 1: "2", length: 2, [[PrimitiveValue]]: "12"} |
- |
- |
数字 |
字面量 |
- |
1和0 转换为false,true |
单个元素的数组 |
包装对象 |
- | - |
布尔 |
true,false 分别转 "true","false" |
true,false 分别转为 1,0 |
- |
布尔数组 |
包装对象 |
- |
- |
数组 |
使用,隔开的字符串 |
空数组为0 如果是一个元素是数字,undefined,null,就直接拿出来转换,undefined,null转换为0 否则转换为NaN |
恒等为true | - |
包装对象 |
- |
- |
对象 |
使用 toString() |
使用 valueof() |
恒等为true |
对象数组 |
- | - | - |
null(空对象) |
"null" |
0 | false |
[null] |
- | - | - |
undefined |
"undefined" |
0 | false |
[undefined]数组 |
- | - | - |