“=”和“==”运算符有什么区别?“===”是什么?(单等号、双等号和三等号)

5
我已经写了一些代码,在某些地方需要使用==,而在其他地方需要使用=。有人能解释一下区别或指引我查阅相关资源吗?
if($("#block").css.display == "none"){
  $("#block").css.display = "block";
}

我能想到的唯一解释是,在一个中我在改变,而在另一个中我在检查。但是在两种情况下,我都在引用相等性。

2
= 是赋值运算符,a = b 表示将 b 放入 a 中。 == 是非严格相等运算符,a == b 表示 a 大致等于 b。 === 是严格相等运算符,也是你应该使用的。 - Benjamin Gruenbaum
4
任何JavaScript语言指南都会深入探讨细节。 - Dave Newton
但是公平地说,在我问这个问题之前,我并不知道 ===,所以现在我需要知道它的区别,感谢提供链接。 - o_O
2
@RKS 这个页面 概述了 JavaScript 表达式的一般情况。 - Pointy
请注意,不应像您的示例中那样编写代码。直接检查CSS属性最好避免使用。相反,应该使用CSS类,例如.hidden { display: none; };然后使用.classList.contains("hidden")来检查其存在性,.classList.toggle("hidden")进行切换等。考虑使用和切换 hidden 属性 - Sebastian Simon
显示剩余3条评论
5个回答

17

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

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

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

如果您想快速了解JavaScript,请查看CodeCademy

如果您更喜欢阅读,请查看MDN,这也是一个很好的入门资料。

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


3
===== 都会检查操作数的类型。它们对于这些检查结果可能采取的行动有所不同。 - user1106925
@jbabey,您能为“identity operator”提供一个来源吗?ECMA-262将其称为“严格相等运算符”。 - Dennis
2
@Dennis 我认为它可能曾经在 MDN 上出现过。我不确定它的起源在哪里,但这是一个相当常见的短语(可以在 Google 上搜索“javascript identity operator”)。 - jbabey
1
@Dennis 啊,我们来了。非常广为人知的书籍JavaScript权威指南使用了“身份运算符”这个术语。它可能起源于这里(或者至少变得更加普遍)。 - jbabey

6

= 将值分配给一个变量

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

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


! 非运算符

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

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


还有另外一种情况...

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

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

>== 不存在


等等...


1
我认为你的意思是:“检查这两个参数是否不相等 或者 类型不同”。德摩根定理 :P - jbabey

4

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

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


3

在JavaScript中,你也可以使用 ===。

= 这是为给变量赋值。

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

=== 这是用来比较值和类型是否都相同。


3

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

赋值运算符

比较运算符


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接