JavaScript入門:Boolean(真偽値)とは
Booleanは「真(true)か偽(false)か」を表す超基本の型です。条件分岐、ループ、バリデーションなど、あらゆる場面で使います。まずは「何が true/false になるのか」「どう組み合わせるのか」をしっかり掴みましょう。
基本の真偽値と作り方
- 2つだけ:
trueとfalse
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
JavaScripttruthy / 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 を覚えると条件が理解しやすい。
- 論理演算子(&& || !)は短絡評価を利用して実用的に書ける。
- 比較は
===を基本に、デフォルト値は??を活用すると安全。
