关于if(xx)和 a==b的判断
2019-05-12 本文已影响0人
liangtianzhan
if 的判断
if(xxx){
}
对于括号里的表达式,会被强制转换为布尔类型。转换结果如下
- Undefined:false
- Null:false
- Boolean:直接判断
- Number:+0,-0,或者 NaN 为 false,其他为 true
- String:空字符串为 false,其他都为 true
- Object:true
a==b的判断
- 如果两个值类型相同,则执行严格相等的运算
- 如果两个值的类型不同
1.如果一个是null,一个是undefined,那么相等
2.如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
3.如果一个值是true/false则将其转为1/0比较
4.如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
5.其它就不相等了