JavaScript | 基礎構文:比較・論理 – falsy / truthy

JavaScript JavaScript
スポンサーリンク

falsy / truthy とは何か

JavaScript では、条件式に値を置くと自動的に「真偽値」に変換されます。このとき false とみなされる値falsytrue とみなされる値truthy と呼びます。
つまり、値そのものが truefalse でなくても、条件式の中では「真っぽい」「偽っぽい」として扱われるのです。


falsy の代表例

falsy は数が限られていて、次のものが代表的です。

  • false
  • 0-0
  • 0n(BigInt のゼロ)
  • ""(空文字列)
  • null
  • undefined
  • NaN(数値ではない)

これらはすべて条件式で「偽」と判定されます。

if (0) {
  console.log("実行されない");
}
if ("") {
  console.log("実行されない");
}
if (undefined) {
  console.log("実行されない");
}
JavaScript

truthy の代表例

falsy 以外の値はすべて truthy です。例えば:

  • 非ゼロの数値
  • 非空文字列
  • 配列(空配列も含む)
  • オブジェクト(空オブジェクトも含む)
  • 関数

これらは条件式で「真」と判定されます。

if (123) {
  console.log("実行される");
}
if ("hello") {
  console.log("実行される");
}
if ([]) {
  console.log("空配列でも実行される");
}
if ({}) {
  console.log("空オブジェクトでも実行される");
}
JavaScript

例題で理解する

例題1:入力チェック

function greet(name) {
  if (!name) {
    console.log("名前を入力してください");
  } else {
    console.log(`こんにちは、${name}さん`);
  }
}

greet("");       // 名前を入力してください(空文字は falsy)
greet("Taro");   // こんにちは、Taroさん
JavaScript

例題2:デフォルト値の設定

const input = "";
const displayName = input || "ゲスト";
console.log(displayName); // "ゲスト"(空文字は falsy → OR の右側が使われる)
JavaScript

例題3:配列の判定

const arr = [];
if (arr) {
  console.log("truthy なので実行される");
}
if (arr.length === 0) {
  console.log("要素がないことを確認できる");
}
JavaScript

注意すべきポイント

  • "false" という文字列は 非空文字列なので truthy。見た目に惑わされないようにしましょう。
  • 空配列 [] や空オブジェクト {} は truthy。中身の有無を判定したいなら lengthObject.keys() を使います。
  • 0 や空文字を「有効な値」として扱いたい場面では、OR(||)でデフォルト値を設定すると意図が壊れることがあります。その場合は null 合体演算子(??)を使うと安全です。
const count = 0;
console.log(count || 10);  // 10(0 は falsy → 意図外)
console.log(count ?? 10);  // 0(null/undefined のみ置き換え → 意図通り)
JavaScript

まとめ

  • falsy は限られた値(false, 0, “”, null, undefined, NaN など)。
  • それ以外はすべて truthy。空配列や空オブジェクトも truthy。
  • 条件式では自動的に真偽値に変換されるため、入力チェックやデフォルト値設定に活用できる。
  • ただし、0 や空文字を有効値としたい場合は OR よりも ?? を使うなど、意図に合わせた書き方が必要。

初心者は「falsy の代表例を覚える」「それ以外は truthy」と理解しておくと、条件式の挙動をスムーズに把握できます。

タイトルとURLをコピーしました