JavaScriptでif文を0で判定すると数値の場合はfalse、文字列の場合はtrueとなる
慣れるまで違和感がありますが、JavaScriptでif文の判定では文字列の値であっても真偽値として取り扱われます。
JavaScriptのif文で数値の0を判定するとfalseが返却されます。
let = 0; if (let) { alert(let+'はtrue'); } else { alert(let+'はfalse'); } // 実行結果 0はfalse
一方で、文字列の0を判定するとtrueが返却されます。
let = "0"; if (let) { alert(let+'はtrue'); } else { alert(let+'はfalse'); } // 実行結果 0はtrue
上記の2つのプログラムでfalse及びtrueと実行結果が異なることが確認できました。
if文で0を判定条件として使用する場合は型に要注意です
- 文字列:”0”はtrue
- 数値: 0 はfalse
JavaScriptでは0の他に””、null、undefinedなどもfalseとして取り扱われますが、文字列か数値かなどで真偽値の結果が異なるため注意が必要です。
コメントを残す