js中数据类型的转换
基本数据类型
把其他数据类型转换为number类型
- isNaN、Number、parseInt、parseFloat
- 在进行加减乘除数学运算的时候
true -> 1 false -> 0
'' -> 0
'1' -> 1
'12px' -> true/12/NaN
null -> 0
undefined -> NaN
{} /^$/ function(){} -> NaN
[] -> 0
[12,23] -> NaN
//=> 通过toStirng把数组转换为字符串<br>
// 然后Number把字符串转换为数字
js中的数学运算
- +、-、*、/ 加减乘除
- 除了加法运算有特殊性,其余的运算符都是数学运算,也就是遇到非数字类型,先转换为
number类型,再进行计算
1-'1' -> 0
10 * null -> 0
10 / undefined -> NaN
10 * [10] -> 100
- 加法的特殊性: 在遇到字符串的时候,+是字符串拼接,不遇到字符串就是数学运算
1+'1' -> '11'
null+'1' -> 'null1'
//=>把其他值先转换为字符串再进行拼接
对象.toString() -> '[object object]'
思考
1+null+true+undefined+[]+'xieth'+null+undefined+[]+10
结果
"NaNxiethnullundefined10"
Number(undefined) -> NaN
//Number在进行转换的时候,只要包含非有效数字,返回都为NaN
将其他类型转换为布尔类型
- Boolean、!、!!
- 在条件判断的时候,也是转换为布尔类型,然后验证条件的真假
只有 0 NaN null undefined 空字符串 -> 转换为false
其余都为true