【问题标题】:when to use === operator check in JavaScript? [duplicate]何时在 JavaScript 中使用 === 运算符检查? [复制]
【发布时间】:2011-02-22 15:36:51
【问题描述】:

可能重复:
Javascript === vs == : Does it matter which “equal” operator I use?

如标题所述;什么时候应该使用 === 运算符检查使用 JavaScript,什么时候不使用。

编辑:找到更完整的答案here。感谢 Mark Byers 指出。

_L

【问题讨论】:

    标签: javascript operators logical-operators


    【解决方案1】:

    它是严格的类型相等运算符。它不仅检查两个 value 是否相等,而且检查 type 是否相同。

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

    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 分钟后将设置为答案
    【解决方案2】:

    您使用它来检查变量的包含值和类型是否与比较的相同。

    【讨论】:

      【解决方案3】:

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

      3 == '3'
      

      true,而这不是:

      3 === '3'
      

      Douglas Crockford 建议始终使用严格比较。

      【讨论】:

      • 说实话,当有人说“总是”做 xxx 时,我总是有点怀疑。我可以看到需要将数字与字符串进行比较的情况。显然,您可以手动将字符串转换为数字,但如果 JS 可以为您做到这一点,为什么还要麻烦呢? :)
      • @nico,同意,在某些情况下您根本不需要它,常见的情况是当您想与nullundefined 进行比较时,if (foo == null) 需要作业,或者在使用 typeof 运算符时,您也不需要它,因为它会总是返回一个字符串...if (typeof foo == "undefined") 就足够了...
      猜你喜欢
      • 2013-11-23
      • 2019-10-06
      • 2013-05-06
      • 2018-12-12
      • 2018-02-09
      • 1970-01-01
      • 2011-01-11
      • 2012-07-19
      • 1970-01-01
      相关资源
      最近更新 更多