【问题标题】:jQuery/Javascript the comparison operators "===" and "=="jQuery/Javascript 比较运算符“===”和“==”
【发布时间】:2016-11-05 07:20:54
【问题描述】:

在 Dreamweaver cc 2015 中,当我在 jquery/javascript 编程中使用比较运算符时,例如:

 if(x == "")

DW 显示预期为 === 的错误,但看到的是 ==。我的问题是 === 和 == 之间有什么区别? 正如我在 C# 等其他语言中所知道的那样,=== 运算符意味着比较将检查值的数据类型以及值。在 javascript 或 jquery 中,如果我使用 == 而不是 === 有什么问题吗?还是 jquery / javascript 中的结果仍然相同?

【问题讨论】:

标签: javascript jquery comparison operators


【解决方案1】:

在 Javascript 中,=== 不会尝试强制您正在测试的变量的类型,而== 会在需要比较这些变量时尽最大努力对这些变量进行“类型转换”。

例如,1 == '1' 返回 true,而 1 === '1' 返回 false,因为您将数字与字符串进行比较。

最后,jQuery 和纯 javascript 都使用相同的 ===== 运算符。因此,两者之间不会有任何区别。

MDN documentation也不错。

【讨论】:

    【解决方案2】:

    == 运算符将在进行任何必要的类型转换后比较是否相等。 === 运算符不会进行转换,因此如果两个值的类型不同,=== 将简单地返回 false。两者都同样快。
    有关更多信息,您可以在堆栈 oveflow 中查看此答案
    Which equals operator (== vs ===) should be used in JavaScript comparisons?

    【讨论】:

      【解决方案3】:

      == 和 === 运算符之间存在细微差别。如果您使用 == 这意味着您仅比较值,例如 (5=='5') 将返回 true,而第一个操作数是整数,第二个操作数是字符串。现在考虑与 === 相同的示例,即( 5==='5') 将返回 false,因为 '===' 运算符将检查值以及类型转换,在这种情况下整数不能等于字符串。希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-26
        • 1970-01-01
        • 2020-11-10
        相关资源
        最近更新 更多