JavaScript ==何时比===更有意义?

在JavaScript比较中应该使用哪个等于运算符(== vs ===)? 表示它们基本相同,除了' === '也确保类型相等,因此' == '可能会执行类型转换。 在道格拉斯克罗克福德的JavaScript中:好的部分,建议总是避免' == '。 但是,我想知道设计两组相等运算符的原始思想是什么。

你有没有看到任何使用' == '比使用' === '更适合的情况?


考虑一下比较数字或字符串的情况:

if (4 === 4)
{
  // true
}

if (4 == "4")
{
  // true
}

if (4 === "4")
{
  // false
}

这适用于对象以及数组。

所以在上述情况下,您必须明智地选择是使用==还是===


简单的答案是,当你想在比较过程中发生类型强制时,'=='比'==='更有意义。

一个很好的例子就是在URL查询字符串中传递数字。 例如,如果您有分页内容,并且page查询参数保存当前页码,那么您可以使用if (page == 1) ...检查当前页面if (page == 1) ...即使page实际上是"1"而不是1


我会建议使用==没有问题,但要了解何时以及为什么要使用它(即使用===作为规则,并且==用于目的)。 从本质上讲, ==只是给你速记符号 - 而不是做类似的事情

if (vble === 0 || vble === "" || vble === null || vble === undefined || vble === false) ...

只写就容易多了

if (vble == false) ...

(或者更容易写)

如果(!vble)...

当然,除了寻找“真理”或“虚假”的价值之外,还有更多的例子。

真的,你只需要了解什么时候以及为什么要使用===== ,我没有看到任何理由为什么不使用==哪里适合更好......

另一个例子是使用这种简写方式来允许速记方法调用:

function func(boolOptionNotCommonlyUsed) {
  if (boolOptionNotCommonlyUsed) { //equiv to boolOptionNotCommonlyUsed == true
    //do something we rarely do
  }
  //do whatever func usually does
}

func(); //we rarely use boolOptionNotCommonlyUsed, so allow calling without "false" as an arg
链接地址: http://www.djcxy.com/p/19419.html

上一篇: When would JavaScript == make more sense than ===?

下一篇: Detect objects similar to circles