理解JavaScript 中的相等:「0」和「False」之謎
在JavaScript 中,相等運算子(==)強制轉換在比較之前將操作數轉換為通用類型,這可能會導致意外結果。當使用 == 測試“0”為 false 時,會出現一個令人費解的難題。
考慮以下程式碼:
"0" == false // true false == "0" // true
這些表達式的計算結果為 true,這表示「0」相當於 false 。然而,這與印出「ha」的if("0") 的行為相矛盾:
if("0") console.log("ha") // prints "ha"
要解開這個謎團,我們需要深入研究「真」值和「假」值的概念在JavaScript 中。 == 運算子將「0」強制轉換為布林值,這是錯誤的。但是,if 語句將非空字串解釋為真值。
為了避免這些不一致,在測試等價性時使用嚴格相等運算符 (===) 至關重要。 === 在沒有類型強制的情況下執行值的直接比較。
"0" === false // false
下表說明了JavaScript 中的true 和falsey 值:
Value | Truthy | Falsey |
---|---|---|
0 | Falsey | True |
"0" | Truthy | False |
"" | Falsey | True |
請記住== 可能會導致比較不同類型的值時會出現意想不到的結果。始終選擇 === 進行精確且明確的比較。
以上是為什麼 JavaScript 中「0」等於「False」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!