為什麼在JavaScript中,“if ('0' == false)” 等於 false,而在 “if(0)” 語句中卻為 true?


讓我們逐一看看這些條件:

if(‘0’ == false)

它遵循以下規則:

If Type(y) is Boolean, return the result of the comparison x == ToNumber(y)

== 運算子會進行型別強制轉換。這意味著會請求顯式型別轉換以匹配兩個運算元的型別。左側的 '0' 會轉換為數字 0。比較這兩個數字,由於 0 等於 0,結果為 true。在這種情況下,這不起作用,因為它沒有暗示 '0' 字串的真假性質,因為它在比較之前被強制轉換了。

if(0)

這檢查字串是否為空,而不是它是否為零。始終記住,非空字串為 true。這裡沒有使用型別強制轉換,因為字串可以根據其自身屬性評估為真或假。

更新於:2020年6月16日

1K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告