為什麼在 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)

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

更新於: 2020年6月16日

1K+ 瀏覽量

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告