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]数组
- - -