JavaScriptの条件式でfalse判定される値(falsy値)を解説!初心者でも理解できる
生徒
「JavaScriptで条件式を書いたとき、なぜか意図せずにfalseになることがあります。これはどういう意味ですか?」
先生
「それはJavaScriptのfalsy値と呼ばれる特別な値の性質が関係しています。条件式でfalseとみなされる値のことです。」
生徒
「falsy値って具体的にはどんなものがありますか?」
先生
「順を追って説明しますね。理解すると条件式の挙動がよくわかります。」
1. falsy値とは?
JavaScriptでは条件式でtrueかfalseかを判断します。通常はtrueは真、falseは偽として扱います。しかし、数字や文字列などの値でも条件式でfalseと判断されるものがあります。これをfalsy値と呼びます。
2. 代表的なfalsy値一覧
JavaScriptでfalseと判定される代表的なfalsy値は次の通りです。
false:論理値そのもの0:数字のゼロ"":空の文字列null:値が存在しないことを表すundefined:変数が未定義NaN:計算結果が数値ではない場合
これらの値は、条件式で自動的にfalseとして扱われます。
3. if文でfalsy値を判定する例
例えば、変数valueがfalsy値かどうか確認する場合、次のように書けます。
let value = 0;
if (!value) {
console.log("valueはfalsy値です");
}
valueはfalsy値です
ここで!は「論理否定」です。valueがfalsy値ならtrueに変換され、条件式が実行されます。
4. 短絡評価との組み合わせ
falsy値を活用すると、短絡評価で安全に処理を行えます。例えば、オブジェクトが存在する場合だけメッセージを表示する場合です。
let user = null;
user && console.log("ユーザー名は" + user.name);
(何も出力されない)
ここでuserがnull(falsy値)なので、右側のconsole.logは実行されません。
5. falsy値の活用例:デフォルト値設定
OR演算子を使うと、falsy値をチェックしてデフォルト値を設定できます。
let input = "";
let name = input || "ゲスト";
console.log(name);
ゲスト
ここでinputが空文字列(falsy値)なので、"ゲスト"が代入されます。条件式と短絡評価を組み合わせることで、値が存在しない場合の安全な処理が可能です。
6. falsy値を理解するメリット
falsy値を理解することで、JavaScriptの条件式が意図せずfalseになる原因がわかります。また、if文や短絡評価を使った簡潔なコードが書けるようになり、プログラムの可読性と安全性が向上します。