JS中双等号的一些规则

466 阅读1分钟

双等号(==)是用来验证两个值是否相等的。在两边值类型不同会隐式类型转换为相同类型,然后再做比较。转换规则如下: 注意: 等号两边存在表达式(如:对值的取反!xxx也是表达式),会先执行表达式,把等号两边都变成数值后才进行隐式类型转换。

  • 对象 == 字符串:会把对象隐式转换成字符串
  • null == undefined -> true,除了这种情况null/undefined和其他任何值都不会相等;
  • NaN == NaN -> false
  • Symbol() == Symbol() -> false;
  • 除了上面的情况,不同类型间对比的时候都要先转换成数字,再进行比较。