==与===的区别

== 允许在相等比较中进行强制类型转换,而 === 不允许

字符串和数字

先将字符串转为数字后比较

其他类型和布尔值的比较

toNumber(布尔值) == 其他值

1
2
3
1 == true // tue
2 == true // false
0 == false // true

null和undefined比较

null == undefined
null不等于false,””,0

对象和非对象的比较

  • 非对象是字符串或数字的,先将对象转为字符串
  • 非对象是布尔值的,先将布尔值转为数字,再先将对象转为字符串

NaN == NaN //false,NaN是数字类型,不等于自身