2015-12-08 73 views
0

爲什麼1=='true'是false?If 1 =='1'// true and 1 == true // true then why 1 =='true'// false

如果1=='1'爲真並且1==true爲真。

如果JavaScript僅比較==方案中的類型而不是類型。

+1

@ user1805928因爲'真=「true'' ...!? – Biffen

+3

我真的不明白爲什麼這個問題被拒絕投票。海報問了一個有效的,而且很有教育意義的問題,這個問題在解決bug問題上會有很大的幫助。如果你認爲這個問題很愚蠢或者顯而易見,我鼓勵他們給出一個答案並進行解釋。 – AVAVT

+0

請看下面... http://stackoverflow.com/questions/359494/does-it-matter-which-equals-operator-vs-i-use-in-javascript-comparisons –

回答

11

這是因爲類型強制。

實際上,這是JavaScript在使用==運算符時試圖代表您執行的操作。

1 == Number('true'); // 1 == NaN 

1 == Number('1'); // 1 == 1 

1 == Number(true); // 1 == 1 

當兩個不同的類型是使用==相比,JavaScript的嘗試將這些脅迫到相同的類型作儀

您可以閱讀更多關於該算法在這裏:http://webreflection.blogspot.com/2010/10/javascript-coercion-demystified.html

+0

謝謝**喬希**,爲寶貴的投入。 – user1805928

相關問題