JavaScript - 暗黙的に「false」と判定される値 null、undefined 等
JavaScript では条件式の判定時に、暗黙的な型変換で「false」と見なされる値があります (falsy な値とも言います)。
代表例が「null」「undefined」で、それ以外にも「0」「NaN」「"" 空文字」があります。
ここでは、これらの値が実際に「false」と判定されるかどうかを実際に確認してみます。
null
if (null){
console.log(("true と判定されました"));
} else {
console.log(("false と判定されました"));
}
// 実行結果
// false と判定されました
undefined
if (undefined){
console.log(("true と判定されました"));
} else {
console.log(("false と判定されました"));
}
// 実行結果
// false と判定されました
数値の 0
if (0){
console.log(("true と判定されました"));
} else {
console.log(("false と判定されました"));
}
// 実行結果
// false と判定されました
但し、文字列の"0"は「false」ではなく、「true」になります。
if ("0"){
console.log(("true と判定されました"));
} else {
console.log(("false と判定されました"));
}
// 実行結果
// true と判定されました
NaN
if (NaN){
console.log(("true と判定されました"));
} else {
console.log(("false と判定されました"));
}
// 実行結果
// false と判定されました
"" 空文字
if (""){
console.log(("true と判定されました"));
} else {
console.log(("false と判定されました"));
}
// 実行結果
// false と判定されました
まとめ
このように、上で挙げた5つの値
- null
- undefided
- 数値の 0
- NaN
- "" 空文字
については暗黙的に「false」に変換されることに注意してください。