关于if(xx)和 a==b的判断
if 的判断
if(xxx){
}
对于括号里的表达式,会被强制转换为布尔类型。
结果为 true 的只有:
Object
除空字符串以外的 String
除 +0,-0 和 NaN 以外的 Number
结果为 false 的:undefined、null、boolean 直接判断、+0,-0 或者 NaN、空字符串。
a==b的判断
如果两个值类型相同,则执行严格相等的运算
如果两个值的类型不同
1.如果一个是null,一个是undefined,那么相等
2.如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
3.如果一个值是true/false则将其转为1/0比较
4.如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
5.其它就不相等了
详解:
to string