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]