`=` 和 `==` 运算符之间有什么区别,什么是 `===`?(单、双和三等号)

IT技术 javascript operators equality assignment-operator
2021-01-16 13:21:02

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

例子:

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

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

5个回答

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

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

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

我会查看CodeCademy以快速介绍 JavaScript。

如果您喜欢阅读更多内容,MDN也是一个很好的介绍。

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

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

= 为变量赋值

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

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


! 不是运算符

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

!==检查两个参数是否彼此不相等类型不相同


多一个

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

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

>== 不存在


等等……

谢谢@jbabey。这正是我的意思^_^
2021-03-24 13:21:02
我认为您的意思是:“检查两个参数是否彼此不相等类型不相同”。德摩根:P
2021-03-31 13:21:02

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

= 用于将右侧的值分配给左侧的变量。

在 javascript 中,您还有 ===。

= 这是用于将值设置为变量。

== 这是为了比较值是否相同。

=== 这是为了比较值是否相同并且类型是否相同。

(我认为使用 :> 只会增加混乱:)
2021-04-06 13:21:02

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

赋值运算符

比较运算符