可能重複:
Javascript === vs == : Does it matter which 「equal」 operator I use?何時使用===運算符檢查JavaScript?
正如標題狀態;什麼時候應該在使用JavaScript時使用===
運算符檢查,何時不使用。
編輯:更多的完整答案發現here。感謝Mark Byers指出。
_L
可能重複:
Javascript === vs == : Does it matter which 「equal」 operator I use?何時使用===運算符檢查JavaScript?
正如標題狀態;什麼時候應該在使用JavaScript時使用===
運算符檢查,何時不使用。
編輯:更多的完整答案發現here。感謝Mark Byers指出。
_L
它是嚴格的類型相等運算符。它不僅檢查兩個是否在值相等,而且也是相同的類型。
考慮一個情況,當你比較數字或字符串:
if (4 === 4) // same value and type
{
// true
}
但
if (4 == "4") // same value and different type but == used
{
// true
}
和
if (4 === "4") // same value but different type
{
// false
}
這適用於對象和數組。
因此,在上述情況下,你必須做出明智的選擇是否使用==
或===
這是好主意,用===
當你不確定類型以及
當您希望抑制隱含的類型轉換時。例如:
3 == '3'
是true
,而這不是:
3 === '3'
道格拉斯Crockford的建議始終使用嚴格比較。
說實話,當有人說「ALWAYS」做xxx時,我總是有點可疑。我可以看到將數字與字符串進行比較的情況。顯然,你可以手動將字符串轉換爲數字,但如果JS能爲你做,爲什麼要麻煩? :) – nico 2010-05-22 06:41:20
@ nico,同意,有些情況下你根本不需要它,一個常見的情況是當你想在一步中比較'null'和'undefined',if(foo == null)做這個工作,或者當使用'typeof'運算符時,你也不需要它,因爲它總是會*返回一個字符串...'if(typeof foo ==「undefined」)'就足夠了...... – CMS 2010-05-22 06:47:36
您可以使用它來檢查如果一個變量的值和類型與被比較的值相同。
是的 - 我會鏈接到它 – ptrn 2010-05-22 06:50:11