ECMAScript中的!=和==,会首先判断两个操作数是否相等。如果不等或相等,则根据对应情况返回true或者false.
两个操作符在比较操作数是否相等之前会首先进行类型转换(通常称为强制类型转换)。
强制类型转换遵循以下规则
- 任一操作数是布尔值,将布尔值转换为数值后再比较
- 如果一个操作数是字符串,一个操作数是数值,尝试将字符串转换为数值后再进行比较
- 如果一个操作数是对象一个不是,调用对象的valueOf()方法取得原始值在进行比较
两个操作数的比较遵循如下规则
null和undefined相等null和undefined不能转换为其他类型的值进行比较- 任一操作数是
NaN相操作符都返回false、不等操作符返回true - 对象比较索引