(自用面试题)==操作符的强制类型转换规则是什么?

86 阅读1分钟
  • 判断是否在对比Undefined和Null,是的话返回true。
    ATTENTION: undefined和null不能转化成其他类型的值再进行比较。

  • 判断是否在对比Number和Boolean,是的话先把Boolean转换为Number,再比较二者是否相等。

  • 判断是否再对比Number和String,是的话先把String转换为Number,再比较二者是否相等。

  • 判断是否一个操作数为对象,另一个操作数不是,是的话就调用对象的valueOf()方法取得其原始值,再根据前面的规则进行比较。

  • 如果两个操作数均为对象,判断二者是否指向同一个对象,是的话返回true。

ATTENTION:
如果有任一操作数为NaN,直接返回false。