【问题标题】:What is the difference between the `=` and `==` operators and what is `===`? (Single, double, and triple equals)`=` 和 `==` 操作符和 `===` 有什么区别? (单、双、三等号)
【发布时间】:2012-08-05 23:34:09
【问题描述】:

我编写了一些代码,在某些地方需要==,而在其他地方需要=。有人可以解释差异或指出资源的方向吗?

例子:

if($("#block").css.display == "none"){
  $("#block").css.display = "block";
}

我唯一能想到的是,我正在改变一个,而另一个我正在检查。但在两者中,我指的是平等。

【问题讨论】:

  • = 是赋值 a = b 表示将 b 放入 a。 . == 是非严格相等, a==b 表示 a 大致等于 b 。 a===b 是严格相等,你应该使用的那个
  • 任何 JavaScript 语言指南都会详细介绍。
  • 这不是== vs ===的重复,他在问= vs ==
  • @jbabey:你说得对,我什至没有注意到,因为这两件事完全不同。
  • @RKS This page 涵盖了一般的 JavaScript 表达式。

标签: javascript operators equality assignment-operator


【解决方案1】:

== 用于测试左边的值是否等于右边的值。

= 用于将右边的值赋给左边的变量。

【讨论】:

    【解决方案2】:

    = 是赋值运算符。它将一个变量(左侧)设置为一个值(右侧)。结果是右侧的值。

    == 是比较运算符。它只会返回true,如果在将它们的类型强制为相同类型后两个值相等。

    === 是一种更严格的比较运算符,通常称为恒等运算符。如果操作数的类型和值都相同,它只会返回true

    我会查看 CodeCademy 以快速了解 JavaScript。

    如果您想了解更多信息,MDN 也是一个很好的介绍。

    对于那些关心“身份运算符”一词来源的人,jbabey指出JavaScript: The Definitive Guide似乎提到了它。

    【讨论】:

    • ===== 都检查操作数的类型。他们可能会根据这些检查的结果来区分他们。
    • @jbabey 您能否提供“身份运算符”的来源? ECMA-262 将其称为“严格等于运算符”。
    • @Dennis 我认为它可能在某个时间点出现在 MDN 上。我不确定它的起源,但它是一个相当常见的短语(谷歌为“javascript 身份运算符”)
    • @Dennis 啊,我们开始吧。广为人知的书JavaScript: The Definitive Guide 使用了术语“身份运算符”。它可能起源于这里(或者至少变得更加普遍)。
    【解决方案3】:

    在 javascript 中,您也有 ===。

    = 这是为变量设置值。

    ==这是用于比较值是否相同。

    ===这是用于比较值是否相同且类型相同。

    【讨论】:

    • (我认为使用 :> 只会增加混乱 :)
    【解决方案4】:

    = 给变量赋值

    == 检查两个参数是否相等

    === 检查两个参数是否相等它们的类型是否相同


    ! 不是运算符

    != 检查两个参数是否不相等

    !==检查两个参数是否不相等类型不一样


    还有一个

    > 检查一个参数是否大于另一个

    >= 检查一个参数是否大于或等于另一个

    >== 不存在


    等等……

    【讨论】:

    • 我想你的意思是:“检查两个参数是否不相等类型不一样”。德摩根:P
    • 谢谢@jbabey。这正是我的意思^_^
    【解决方案5】:

    = 运算符是一个赋值运算符。您正在将一个对象分配给一个值。 == 运算符是一个条件相等运算。您正在确认两件事是否具有相等的值。还有一个 === 运算符。这不仅比较值,还比较类型。

    Assignment Operators

    Comparison Operators

    【讨论】:

      猜你喜欢
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 2011-03-27
      相关资源
      最近更新 更多