'='和'=='运算符与'==='有什么区别?(单等、双等和三等)

What is the difference between the `=` and `==` operators and what is `===`? (Single, double, and triple equals)

提问人:o_O 提问时间:8/9/2012 最后编辑:Sebastian Simono_O 更新时间:11/10/2022 访问量:7216

问:

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

例:

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

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

JavaScript 相等 赋值运算符

评论

2赞 Benjamin Gruenbaum 8/9/2012
= 是赋值 a = b 表示将 b 放在 a 里面。== 是不严格的相等,a==b 表示 a 大致等于 b。a===b 是严格的相等性,是你应该使用的
4赞 Dave Newton 8/9/2012
任何 JavaScript 语言指南都将详细介绍。
0赞 o_O 8/9/2012
但公平地说,在我问这个问题之前,我不知道 ===,所以现在我需要知道差异是什么,所以感谢您的链接。
2赞 Pointy 8/9/2012
@RKS 本页介绍了 JavaScript 表达式的一般内容。
0赞 Jonas Wilms 3/25/2018
相关新闻: stackoverflow.com/questions/2063480/the-3-different-equals

答:

4赞 grdaneault 8/9/2012 #1

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

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

17赞 Randall Hunt 8/9/2012 #2

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

==是比较运算符。仅当两个值在强制其类型为同一类型后相等时,它才会返回。true

===是一种更严格的比较运算符,通常称为标识运算符。仅当操作数的类型和值相同时,它才会返回。true

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

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

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

评论

3赞 8/9/2012
并检查操作数的类型。正是他们可能对这些检查的结果做些什么,使他们与众不同。=====
0赞 Dennis 8/9/2012
@jbabey 您能提供“身份运算符”的来源吗?ECMA-262 将其称为“严格等于运算符”。
2赞 jbabey 8/9/2012
@Dennis我认为它可能在某个时间点出现在 MDN 上。我不确定它起源于哪里,但它是一个相当常见的短语(谷歌为“javascript 身份运算符”)
1赞 jbabey 8/9/2012
@Dennis啊,我们开始了。广为人知的《JavaScript: The Definitive Guide》一书使用了“身份运算符”一词。它可能起源于这里(或者至少变得更加普遍)。
3赞 Bruno Costa 8/9/2012 #3

在 javascript 中,你还有 ===。

=这是为了将值设置为变量。

==如果值相同,则用于比较。

===这是为了比较值是否相同,类型也相同。

6赞 Naftali 8/9/2012 #4

=为变量赋值

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

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


!非运算符

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

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


再来一个

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

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

>==不存在


诸如此类。。。

评论

1赞 jbabey 8/9/2012
我想你的意思是:“检查两个参数是否彼此不相等类型是否相同”。德摩根斯:P
3赞 kakridge 8/9/2012 #5

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

赋值运算符

比较运算符