可能重复:
JavaScript === vs == : Does it matter which “equal” operator I use?
The 3 different equals
我试图了解这里发生了什么:
data.toPage = $('div#someID');
if ( typeof data.toPage === "string" ) {
// sth
console.log("hello");
}
所以我正在检查字符串我不是吗?我好奇,因为我的控制台“helloes”。
感谢您的一些意见!
答案 0 :(得分:6)
==
这是相等的运算符,如果两个操作数相等,则返回布尔值true。 JavaScript将尝试将不同的数据类型转换为相同的类型以进行比较。假设'a'为2而'b'为4,以下示例将返回值true:
a == 2
a == "2"
2 == '2'
===
这是严格相等的运算符,只有两个操作数相等且类型相同时才返回布尔值true。这些下一个示例返回true:
a === 2
b === 4
答案 1 :(得分:3)
三等号===
比较值和类型,而双==
仅比较值
例如"1"
和1
具有相同的值(可以这么说)但具有不同的类型。因此会发生以下情况:
"1" == 1 //true
"1" === 1 //false
This is a great read获取一些有用的javascript知识,其中包括三等于其他知识渊博的内容
答案 2 :(得分:2)
===
比较运算符意味着在进行比较之前,这两个值的类型不会被修改,因此它们需要具有相同的类型,并且表示相同的值才能返回true
'1' == 1 // true
'1' === 1 // false