可能重复:
Javascript === vs == : Does it matter which “equal” operator I use?
为什么我最近会看到很多javascript代码,其表达式如下所示:
if(val === "something")
为什么“===”而不只是“==”?有什么不同?我什么时候应该使用其中一种?
答案 0 :(得分:8)
===不允许类型强制,所以这样的东西会返回false:
if (2 === '2') // false
“普通”javascript ==运算符确实允许类型强制,所以这将返回true:
if (2 == '2') // true
答案 1 :(得分:2)
var a = 3;
var b = "3";
if (a == b) {
// this is true.
}
if (a === b) {
// this is false.
}
答案 2 :(得分:1)
===
通常称为身份运算符。被比较的值必须具有相同的类型和值才能被视为相等。 ==
通常被称为等于运算符,并执行类型强制以检查相等性。
一个例子
1 == '1' // returns true even though one is a number, the other a string
1 === '1' // returns false. different datatypes
道格·克罗克福德在JavaScript the Good Parts google tech talk video中简要介绍了这一点。值得花一个小时观看。
答案 3 :(得分:0)
检查类型和值是否匹配。这很重要,因为(0 == false)为真,但(0 === false)不成立。