2010-05-22 35 views

回答

13

它是嚴格的類型相等運算符。它不僅檢查兩個是否在相等,而且也是相同的類型

考慮一個情況,當你比較數字或字符串:

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 
} 

這適用於對象和數組。

因此,在上述情況下,你必須做出明智的選擇是否使用=====

這是好主意,用===當你不確定類型以及

+0

感謝您的快速和徹底的答案 - 將在15分鐘後通過設置爲答案 – ptrn 2010-05-22 06:32:22

+0

@ptrn:歡迎您:) – Sarfraz 2010-05-22 06:36:26

2

當您希望抑制隱含的類型轉換時。例如:

3 == '3' 

true,而這不是:

3 === '3' 

道格拉斯Crockford的建議始終使用嚴格比較。

+0

說實話,當有人說「ALWAYS」做xxx時,我總是有點可疑。我可以看到將數字與字符串進行比較的情況。顯然,你可以手動將字符串轉換爲數字,但如果JS能爲你做,爲什麼要麻煩? :) – nico 2010-05-22 06:41:20

+2

@ nico,同意,有些情況下你根本不需要它,一個常見的情況是當你想在一步中比較'null'和'undefined',if(foo == null)做這個工作,或者當使用'typeof'運算符時,你也不需要它,因爲它總是會*返回一個字符串...'if(typeof foo ==「undefined」)'就足夠了...... – CMS 2010-05-22 06:47:36

1

您可以使用它來檢查如果一個變量的值和類型與被比較的值相同。