2012-04-20 178 views
-1

可能重複:
JavaScript === vs == : Does it matter which 「equal」 operator I use?
The 3 different equals「===」在JavaScript/Jquery中暗含的是什麼?

我試圖瞭解發生在這裏:

data.toPage = $('div#someID'); 

if (typeof data.toPage === "string") { 
     // sth 
     console.log("hello"); 
     } 

所以我在檢查一個字符串我不是嗎?我很好奇,因爲我的控制檯「helloes」。

感謝您的一些意見!

+1

[這裏](http://stackoverflow.com/questions/ 523643/JavaScript之間的區別)就是答案。 – sp00m 2012-04-20 13:03:50

+0

請勿強制類型。這*具有*重複。 – alex 2012-04-20 13:04:23

+0

忘記所有這些愚蠢的崇拜者的安逸輕鬆的答案,@ sp00m有答案的權利開始。 :P – SpYk3HH 2012-04-20 13:05:47

回答

5

== 這是等號運算符,如果兩個操作數相等,則返回布爾值true。 JavaScript會嘗試將不同的數據類型轉換爲相同的類型以進行比較。假設「A」爲2和「b」是4,下面的例子將返回真值:

a == 2 
a == "2" 
2 == '2' 

=== 這是嚴格等於操作員和僅返回一個布爾真,如果兩個操作數是相同的和相同的類型。這些下面的例子返回true:

a === 2 
b === 4 
+0

感謝您的解釋! – frequent 2012-04-20 13:05:35

2

===比較操作意味着這兩個值將不會修改其類型是由比較之前,因此他們需要是同一類型的,以及代表相同值爲它返回true。

'1' == 1 // true 
'1' === 1 // false 
2

三重等號===兩個值類型,而雙==只比較值

例如"1"1具有相同的值(這麼說),但不同類型的比較。因此會出現以下情況:

"1" == 1 //true 
"1" === 1 //false 

This is a great read一些有用的JavaScript知識,其中包括除其他好到知道的東西三重等號