何时在JavaScript中使用===运算符检查?

8
3个回答

13

这是一个严格类型的相等运算符。它不仅检查两个值是否相等,还要检查它们的类型是否相同。

考虑在比较数字或字符串时可能遇到的情况:

if (4 === 4) // same value and type
{
  // true
}

但是

if (4 == "4") // same value and different type but == used
{
  // true
}

if (4 === "4") // same value but different type
{
  // false
}

这同样适用于对象和数组。

因此,在上述情况下,您必须明智地选择是否使用=====

如果您确定类型,使用===是一个好主意。


感谢您快速而详尽的回答 - 在15分钟过后将设置为答案。 - ptrn

2
当您希望禁止隐式类型转换时。例如:
3 == '3'

true是正确的,而这个不是:

3 === '3'

道格拉斯·克罗克福德建议始终使用严格比较。

说实话,当有人说“总是”做某事时,我总是有点怀疑。我可以看到有些情况下将数字与字符串进行比较是可取的。显然,您可以手动将字符串转换为数字,但如果JS可以为您完成,为什么要麻烦呢? :) - nico
2
@nico,同意,有一些情况下你根本不需要它,一个常见的情况是当你想在一步中比较 nullundefined 时,if (foo == null) 就可以胜任了,或者当使用 typeof 运算符时,你也不需要它,因为它总是返回一个字符串... if (typeof foo == "undefined") 就足够了... - Christian C. Salvadó

1

你可以使用它来检查一个变量的值和类型是否与比较对象相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接