2013-05-19 24 views
2

我注意到有不少人在Javascript中比較事物時使用三個等號,但我被教導只使用兩個。任何人都可以闡明爲什麼有人會使用三個或兩個,爲什麼他們都工作?在javascript中,比較變量時使用兩個等號還是三個比較好

-Thanks :)

另一位用戶指出,這個問題已經被問,我們對此深感抱歉夥計們,去看看在那一個答案。

+0

謝謝,要檢查一個。 – entropy

回答

9

以下所有的評估將返回true

隨着== JS 型,忙裏忙外。

1 == '1' 
1 == 1 
1 == true 
0 != true 
0 == false 

隨着=== JS 不會型耍弄

1 !== '1' 
1 === 1 
1 !== true 
0 !== false 
+0

@Stano,請解釋一下。我認爲這很明顯,'1'不等於'1'(int爲字符串),但'1完全等於1'(int爲int),這是前兩個例子===' –

+0

謝謝@Stano ,添加到我的答案。 –

3

這取決於用例。三等於是檢查相同性;換句話說,不僅是等同的,而且是相同的類型。這裏有一個很好的reference

2

身份===操作者是相同的,除了==沒有類型轉換操作者因此完成的類型必須是相等同樣被認爲是平等的。

在進行任何必要的類型轉換之後,==運算符將進行比較以獲得相等性。

===運算符不會執行轉換,所以如果兩個值不是相同的類型===將簡單地返回false。

對我而言,我一般總是用===!==,以免讓事情發生。

0

Triple equal將檢查變量的類型,而double equal只會檢查匹配。如果你想喲檢查變量的類型,你需要使用triple equals。否則你只需要使用double equals。