在js中转换类型有三种情况
- 转换为布尔值
- 转换为数字
- 转换为字符串
四则运算和==、条件运算都会隐式类型转换
加法运算:字符串+数字 优先将数字转为字符串,然后进行拼接;
非加法运算:
- 字符串 - 数字/(变量) 优先将字符串转为数字,然后进行计算
==判断:
- 首先会判断两者类型是否相同。相同的话就是比值大小了
- 类型不相同的话,那么就会进行类型转换
- 会先判断是否在对比 null 和 undefined,是的话就会返回 true
- 判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number
- 判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断
- 判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断
转换为0
Number()
Number(0)
Number('')
Number('0')
Number(false)
Number(null)
Number([])
Number([0])
转换为NaN
Number(undefined);
parseInt("");
parseInt(null);
parseInt(undefined);