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」に変換されることに注意してください。