為什麼在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。這裡沒有使用型別強制轉換,因為字串可以根據其自身屬性評估為真或假。
廣告