Skip to content

JS两值比较

两值比较 == 的五条原则

从上到下按规则比较,直到能得到确切结果为止

  1. 两端类型相同,比较值
  2. 两端存在NaN, 返回false
  3. undefinednull 只有在与自身比较,或者相互比较时, 才会返回true
  4. 两端都是原始类型, 转换成数字比较
  5. 一端是原始类型, 一端时对象类型, 把对象转为原始类类型后进入第1步

对象如何转为原始类型?

  1. 如果对象拥有[Symbol.toPrimitive]方法, 调用该方法. 若该方法能得到原始值, 则使用该原始值 若得不到原始值, 则会抛出异常

  2. 调用对象的valueOf方法 若该方法能得到原始值, 则使用该原始值 若得不到, 进入下一步

  3. 调用对象的toString方法 若该方法能得到原始值, 则使用该原始值 若得不到, 则抛出异常

JS数据运算总结