等于和不等于
ECMAScript的等于操作符使用两个等于号(==),不等于则使用(!=),这两个操作符都会先进行类型转换(强制类型转换)再确定操作数是否相等。
类型转换规则:
- 任一操作数为布尔值,先转换为数值再进行比较。
false
转换为0,true
转换为1 - 一个操作数为字符串,另一个为数值,则将字符串转换为数值,再进行比较
- 一个操作数为对象,另一个不是,则调用对象的
valueOf()
方法取得原始值,再按照前面的规则进行比较
进行比较时遵循规则:
null
和undefined
相等null
和undefined
不能转换为其他类型的值进行比较- 任一操作数为
NaN
,相等操作符返回false
,不等操作符返回true
,因此按照规则,NaN
不等于NaN
- 两个操作符都是对象,则比较他们是不是同一个对象,如果两个操作符指向同一个对象,则相等操作符返回
true
全等与不全等
全等与不全等操作符在比较相等时不转换操作数。
null == undefined; // true null === undefined; // false
示例:



