我想在這裏明白了什麼,最好的方式來解釋自己是通過提供一個例子:爲什麼在JavaScript中「」==「0」是錯誤的?
"" == false
// true
"0" == false
// true
false == false
// true
但是這裏什麼發生?
"" == "0"
// false
如果""
評估爲false
並"0"
評估爲false
邏輯預測,這是相同的,因爲我寫false == false
。
我知道我在比較兩個字符串,但語言如何知道"a" == "b"
或"" == "0"
之間的區別?在這種情況下,強制是如何發生的?
您的行爲好像沒有關於文檔== –
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators –
'=='不是傳遞性的,'' a == b'和'b == c'並不意味着'a == c'。算法在spec [** here **](http://es5.github.io/#x11.9.3);您想要的位是:如果Type(x)是String並且Type(y)是Number,則 會返回比較結果ToNumber(x)== y。 **並將其與**進行比較如果Type(x)與Type(y)相同,那麼如果Type(x)是String,則返回true,如果x和y是完全相同的字符序列(長度相同並且相同在相應位置的字符)。否則,返回false。 –