三个等号符号的含义

52

可能是重复问题:
JavaScript === vs == : Does it matter which “equal” operator I use?

我在这里提出了另一个问题,并得到了如下的很好的答案:

$(document).on("keydown", function (e) {
  if (e.which === 8 && !$(e.target).is("input, textarea") || $(e.target).is('[readonly]')) {
      e.preventDefault();
  }
}); 

注意if语句中的三个等号===。我一直以为在javascript/jQuery if语句中只需要两个等号==。为什么要用三个等号呢?

更新

对不起,这是一个重复的问题 - 我搜索了但没有找到好的问题。我想我使用了错误的搜索词。


3
我猜它在检查绝对相等。意思是不仅相等,而且完全一样。 - Grigor
这个其他的问题涉及了这个主题的大量信息(https://dev59.com/Z3RC5IYBdhLWcg3wROpQ) - MrOBrian
2
很遗憾,Stack Overflow的搜索功能无法处理像 = 这样的字符。不过Google可以: http://www.google.com/search?q=site:stackoverflow.com+javascript+%3D%3D%3D+vs+%3D%3D - Rob W
2个回答

78

在JavaScript中,三个等号代表不进行类型转换的相等性判断

例如:

1=="1"     // true, automatic type coercion
1==="1"    // false, not the same type.

JS中的true、false和相等性详解:https://gist.github.com/romankierzkowski/9024908 - RKI
+1 我通常从强类型语言的角度来思考 - 因此第二个例子会抛出一个错误。虽然我已经使用 JavaScript 一段时间了,但还没有习惯这种情况。 - Radmation

14

三个等号表示值和类型都相等。


4
我开始回答就像那样,然后想到这必须是个重复问题,请看这个链接 - TecBrat

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