js 相等和不相等操作符总结

操作符两边操作数先转换数据类型,然后再比较它们的相等性,具体的规则如下:

操作符规则 操作符a的数据类型 操作符b的数据类型 == != 备注
Boolean转为Number — — — Boolean无条件转为Number类型
String转为Number Number — — —
Object转为a.valueOf() 除了Object之外的所有类型 — — —
null undefined true false null等于underfined
NaN — false true NaN不等于NaN
Object Object — — 如果a和b指向同一个对象,相等操作符返回true,否则返回false

上述表格归纳自javascript高级程序设计,[p51-p53]