JavaScript | 基礎構文:データ型 – Boolean

JavaScript
スポンサーリンク

JavaScript入門:Boolean(真偽値)とは

Booleanは「真(true)か偽(false)か」を表す超基本の型です。条件分岐、ループ、バリデーションなど、あらゆる場面で使います。まずは「何が true/false になるのか」「どう組み合わせるのか」をしっかり掴みましょう。


基本の真偽値と作り方

  • 2つだけ: truefalse
let isReady = true;
let hasError = false;
JavaScript
  • Booleanへの変換: Boolean(x) または !!x
console.log(Boolean(1));     // true
console.log(Boolean(0));     // false
console.log(!!"hello");      // true(ダブルバンで簡易変換)
console.log(!!undefined);    // false
JavaScript

truthy / falsy(真っぽい/偽っぽい)値

  • falsy(条件で偽になるもの):
    0、NaN、””(空文字)、null、undefined、false
if (0) { console.log("実行されない"); }
if ("") { console.log("実行されない"); }
JavaScript
  • truthy(それ以外ほぼ全部):
    非空文字列、非ゼロ数値、配列、オブジェクト、関数、”0″、”false”
if ("0") { console.log("実行される"); }      // 文字列 "0" は truthy
if ([]) { console.log("配列もtruthy"); }
if ({}) { console.log("オブジェクトもtruthy"); }
JavaScript
  • ポイント: 見た目に「空っぽ」でも、[]{} は truthy。勘違いしやすい。

比較で得られる真偽値

  • 比較演算子: > < >= <= == === != !==
console.log(5 > 3);       // true
console.log("5" == 5);    // true(型の自動変換あり)
console.log("5" === 5);   // false(型まで比較)
JavaScript
  • おすすめ: 原則 ===!== を使う(型の自動変換による混乱を防ぐ)

論理演算子(AND / OR / NOT)

  • AND(&&): 両方が真なら真
console.log(true && true);   // true
console.log(1 && "ok");      // "ok"(左がtruthyなら右を返す)
JavaScript
  • OR(||): どちらか真なら真
console.log(false || "fallback"); // "fallback"(左がfalsyなら右を返す)
console.log("hi" || "fallback");  // "hi"
JavaScript
  • NOT(!): 真偽の反転
console.log(!true);  // false
console.log(!!"a");  // true(真偽値に明示変換)
JavaScript
  • 短絡評価(ショートサーキット):
    ANDは左がfalsyなら右を見ない/ORは左がtruthyなら右を見ない
false && console.log("実行されない");
"ready" || console.log("実行されない");
JavaScript

よくあるつまずきと対策

  • 文字列 “0” は truthy: 数値の 0 は falsy、文字列 “0” は truthy
console.log(Boolean(0));   // false
console.log(Boolean("0")); // true
JavaScript
  • 空配列/空オブジェクトは truthy: 「空ならfalse」にはならない
console.log(Boolean([]));  // true
console.log(Boolean({}));  // true
JavaScript
  • || と ?? の使い分け(デフォルト値):
    || は falsy 全部で右側に倒れる/?? は undefined と null のときだけ
const page = 0;
console.log(page || 1);  // 1(0はfalsyなので意図と違うことがある)
console.log(page ?? 1);  // 0(undefined/null だけを補う)
JavaScript
  • == の型変換に注意: 厳密比較 === を基本にする
console.log(false == 0);   // true(型変換あり)
console.log(false === 0);  // false
JavaScript

三項演算子で真偽値を使いこなす

  • 構文: 条件 ? 真の場合 : 偽の場合
const score = 70;
const result = score >= 60 ? "合格" : "不合格";
console.log(result); // "合格"
JavaScript

実用パターン

  • 存在チェック+デフォルト
const name = ""; // 入力が空
const displayName = name || "(未入力)"; // "(未入力)"
JavaScript
  • 安全な存在チェック(0や空文字を許可)
const count = 0;
const safeCount = count ?? 0; // 0
JavaScript
  • 条件付き実行(AND)
const isLoggedIn = true;
isLoggedIn && console.log("メニュー表示"); // 真のときだけ実行
JavaScript

ミニ練習

  • 問1: "false"Boolean に変換した結果は?
console.log(Boolean("false")); // true(非空文字列だから)
JavaScript
  • 問2: 0 をデフォルト値にしたい。どちらが正しい?
const page = 0;
console.log(page || 1);  // 1(意図外)
console.log(page ?? 1);  // 0(意図どおり)
JavaScript
  • 問3: 「ログインしていたらHelloを表示」する一行を書け
const isLoggedIn = true;
isLoggedIn && console.log("Hello");
JavaScript
  • 問4: 厳密比較で "5"5 の等価性を判定
console.log("5" === 5); // false
JavaScript

まとめ

  • Booleanは true/false の2種類。
  • truthy/falsy を覚えると条件が理解しやすい。
  • 論理演算子(&& || !)は短絡評価を利用して実用的に書ける。
  • 比較は === を基本に、デフォルト値は ?? を活用すると安全。
タイトルとURLをコピーしました