关于if(xx)和 a==b的判断

a==b


image.png

做相等运算时,一般倾向于将不同的数据类型都转化为数值,或是转化为相同的数据类型.

如果两个值类型相同,则执行严格相等的运算
如果两个值的类型不同

如果一个是null,一个是undefined,那么相等
如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
如果一个值是true/false则将其转为1/0比较
如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
其它就不相等了

关于if()

if后的括号里的表达式会被强制转换为布尔类型

image.png

在这里强烈推荐大家使用 ===严格相等,不会出错。
记住五个false值 0 null undefined 空字符串 NaN

你可能感兴趣的:(关于if(xx)和 a==b的判断)