在相等比较中使用 Object.is()

# 在相等比较中使用 Object.is()

# 前言

JavaScript 是弱类型的,在使用 == 作比较时,在一些情况下由于类型转换,会出现意想不到的结果。

0 == ' ' //true
null == undefined //true
1
2

JavaScript 提供了全等操作符===,它比==更加严格并且不会发生类型转换,但是用 === 来进行比较也不是最好的解决方案,也会出现问题。

NaN === NaN // false
1

# 敲重点

Es6 中提供了新的 Object.is(x, y)方法,它具有 === 的一些特点,而且更好、更精确,一些特殊的比较中是不会出现特殊情况。

  • x: 被比较的第一个值
  • y: 被比较的第二个值
  • 返回: 一 Boolean 值,标示两个参数是否是同一个值
Object.is(0, ' ') //false
Object.is(null, undefined) //false
Object.is([1], true) //false
Object.is(NaN, NaN) //true
1
2
3
4
上次更新: 3/31/2021, 11:56:25 AM