`==`和`===`,两个不同的运算符来检查对象是否相等。该选择哪一个呢?
在JavaScript中,你可以使用两个不同的操作符来检查对象是否相等。它们是== 和=== 。
它们基本上做同样的事情,但两者之间有很大的区别。
=== 将检查两个值是否相等。如果它们是对象,那么这些对象必须是相同的类型。如你所知,JavaScript不是类型化的,但是你有一些你必须知道的基本类型。
特别是我们有值类型(布尔值、空值、未定义、字符串和数字)和引用类型(数组、对象、函数)。
如果两个值不属于同一类型,=== 将返回false。
如果它们属于相同的类型,JavaScript将检查是否相等。
对于引用类型,这意味着这些值需要引用相同的对象/数组/函数。不是一个相同的值:是同一个。
== 与此不同的是,它将尝试转换类型来匹配。
这就是为什么你会得到这样的结果
false == '0' //true
false === '0' //false
null == undefined //true
null === undefined //false
根据我的经验,在97%的情况下,你会想使用=== ,除非== 提供你想要的东西。它的缺点和边缘情况较少。
!= 和!== 也是如此,它们执行同样的事情,但被否定了。
总是默认使用!== 。