まず Boolean を一言でいうと
Boolean(ブーリアン)は、
「真か偽か、2つの状態だけを表すためのデータ型」 です。
JavaScript では Boolean 型の値はたった 2つだけです。
true(真、はい)false(偽、いいえ)
if 文の条件
ループを続けるかどうか
フラグ(~かどうか)
こういった「2択」の判断は、すべて Boolean が土台になっています。
ここが重要です。
Boolean は「条件分岐のための言語」と言っていいくらい、プログラムの流れを決める中心的な型です。
「true / false をどう作って、どう使うか」を理解すると、if や while が一気にスッキリします。
Boolean の基本:true / false を変数に入れてみる
一番シンプルな Boolean の宣言
まずは、Boolean をそのまま変数に入れてみます。
let isActive = true;
let isAdmin = false;
console.log(isActive); // true
console.log(isAdmin); // false
JavaScripttrue と false はキーワードなので、
文字列の "true" / "false" とは全く別物です。
console.log(typeof true); // "boolean"
console.log(typeof "true"); // "string"
JavaScripttypeof で型を調べると、true は boolean、"true" は string です。
ここが重要です。
「true/false」と「”true”/”false”(文字列)」は別物。
条件分岐で使うのは前者の Boolean であり、後者はただの文字です。
Boolean はどうやって生まれるか:比較演算子からの true / false
比較から Boolean が返ってくる
Boolean を自分で true / false と書くだけでなく、
「条件式の結果として返ってくる」 ことが多いです。
例えば、数値の比較。
let age = 20;
console.log(age > 18); // true (20 は 18 より大きい)
console.log(age < 18); // false (20 は 18 より小さくない)
console.log(age === 20); // true (20 と 20 は等しい)
console.log(age !== 20); // false (20 と 20 は異ならない)
JavaScript> < >= <= === !== などの比較演算子は、
必ず true か false を返します。
この結果をそのまま変数に入れておくこともできます。
let isAdult = age >= 18;
console.log(isAdult); // true
JavaScript厳密等価(===)とゆるい等価(==)は違う
JavaScript には == と === の2種類の「等しい」があります。
おすすめは 常に === を使うこと です。
console.log(1 == "1"); // true (型を無理やり合わせてから比較する)
console.log(1 === "1"); // false (数値と文字列は別物だから false)
JavaScript== は型を自動変換してしまうため、
予想外の true / false になりやすく、バグの元です。
ここが重要です。
「等しいかどうか」の判定には、== ではなく === を使う。=== は「値も型も両方同じか」を見てくれるので、安全です。
条件分岐での Boolean の使い方
if 文との組み合わせ
Boolean が真価を発揮するのは if 文です。
let isLoggedIn = true;
if (isLoggedIn) {
console.log("ログイン済みです");
} else {
console.log("ログインしていません");
}
JavaScriptif (条件) の「条件」のところに、
Boolean(true / false になる式)が書かれます。
もちろん、比較式をそのまま書いても OK です。
let age = 16;
if (age >= 18) {
console.log("大人です");
} else {
console.log("未成年です");
}
JavaScriptBoolean 変数をかませると読みやすくなる
条件式を直接書くより、
一度 Boolean 変数に入れてから使うと読みやすくなることが多いです。
let age = 20;
let isAdult = age >= 18;
if (isAdult) {
console.log("大人として扱う");
}
JavaScript「age >= 18」という生の条件より、isAdult という名前のほうが「何をチェックしているか」が明確になります。
ここが重要です。
比較式をそのまま if に書くのではなく、一度 Boolean 変数にして名前をつけると、
「この条件は何を意味しているか」がコードから伝わりやすくなります。
論理演算子(&&, ||, !)と Boolean
AND(かつ):&&
&& は「両方とも true のときだけ true」になる演算子です。
let age = 20;
let hasTicket = true;
if (age >= 18 && hasTicket) {
console.log("入場できます");
} else {
console.log("入場できません");
}
JavaScriptage >= 18 が true
かつhasTicket が true
なら「入場できます」になります。
OR(または):||
|| は「どちらか一方でも true なら true」です。
let isAdmin = false;
let isOwner = true;
if (isAdmin || isOwner) {
console.log("設定画面にアクセスできます");
} else {
console.log("アクセスできません");
}
JavaScriptNOT(否定):!
! は true / false をひっくり返します。
let isLoggedIn = false;
if (!isLoggedIn) {
console.log("ログインしてください");
}
JavaScript!isLoggedIn は「ログインしていないなら」という意味です。
ここが重要です。
論理演算子は、「複数の Boolean 条件を組み合わせて、より意味のある条件を作る」ための道具。&&(かつ)、||(または)、!(ではない)の3つを使いこなすと、条件分岐が一気に表現豊かになります。
truthy / falsy(真っぽい/偽っぽい値)という考え方
Boolean 以外の値も「if の条件として評価される」
JavaScript の if 文では、
Boolean 以外の値も「真っぽい(truthy)」「偽っぽい(falsy)」として扱われます。
例を見てください。
if ("こんにちは") {
console.log("実行される"); // 実行される
}
if (0) {
console.log("実行されない"); // 実行されない
}
JavaScript"こんにちは" は「空でない文字列」なので truthy(true とみなされる)0 は falsy(false とみなされる)
として扱われます。
falsy になる代表的な値
細かいリストは覚えなくて大丈夫ですが、
最低限これだけは知っておくと安心です。
false0""(空文字)nullundefinedNaN
これらは if の条件に入れると、false とみなされます。
if ("") {
console.log("実行されない");
}
if (undefined) {
console.log("実行されない");
}
JavaScriptBoolean() で真偽値に変換して確認できる
Boolean(値) と書くと、その値が truthy か falsy かをはっきり確認できます。
console.log(Boolean("hello")); // true
console.log(Boolean("")); // false
console.log(Boolean(123)); // true
console.log(Boolean(0)); // false
console.log(Boolean(null)); // false
console.log(Boolean("0")); // true(文字列 "0" は中身があるので true)
JavaScriptここが重要です。
if の条件に Boolean 以外を書いたとき、
「この値は truthy として扱われるのか? falsy なのか?」を意識できるようになると、
「なぜこの if が通る/通らないのか」が分かるようになってきます。
Boolean を「フラグ」として使う感覚
「〜かどうか」を変数名にしてみる
実務でもよく出てくるのが、「フラグ」と呼ばれる Boolean 変数です。
let isFinished = false;
let hasError = false;
doSomething();
isFinished = true;
JavaScriptフラグの変数名は、
isXxxhasXxxcanXxx
のように、「true / false で答えられる質問」になるようにつけると読みやすくなります。
例えば:
isVisible(表示されているか)hasPermission(権限を持っているか)canSubmit(送信できる状態か)
そうすると、if の条件も自然な日本語に近づきます。
if (isVisible && !hasError) {
// 表示されていて、エラーがなければ…
}
JavaScript「状態を表す数値」より Boolean のほうが安全なことが多い
例えば、「完了したかどうか」を 0 / 1 で管理することもできますが、
let status = 0; // 0: 未完了, 1: 完了
if (status === 1) {
// 完了
}
JavaScriptこれよりも、
let isFinished = false;
if (isFinished) {
// 完了
}
JavaScriptのほうが、「何を表しているか」が明確です。
ここが重要です。
「0 / 1 で表している二択」は、できるだけ Boolean に置き換える。isXxx / hasXxx という名前で true / false を扱うと、
プログラムの「意思」がコードから読み取りやすくなります。
初心者向け Boolean の押さえどころ
最後に、Boolean について本当に大事なポイントだけを整理します。
Boolean 型は true と false の2つだけ。"true" や "false" は文字列であって、Boolean ではない。
比較演算子(>, <, >=, <=, ===, !==)は必ず Boolean を返す。
等価比較には、型まで見る === / !== を使う。
if 文の条件には、Boolean(または Boolean になる式)を書く。
複雑な条件は、&&(かつ), ||(または), !(ではない)で組み合わせる。
Boolean 以外の値も、if の中では truthy / falsy として解釈される。0, "", null, undefined, NaN, false は falsy、それ以外は基本 truthy。
ここが重要です。
Boolean を「はい/いいえ」「〜かどうか」を表す型として意識し、isXxx / hasXxx のようなフラグでプログラムの条件を表現できるようになると、
if 文や while 文が“読める・書けるロジック”に変わっていきます。
もしよければ、次のようなミニ練習をしてみてください。
ageに数字を入れるisAdultという Boolean 変数をage >= 18で作る- if 文で
isAdultが true なら「大人です」、false なら「未成年です」と表示する
この小さなプログラムを書くことで、
「比較 → Boolean → if → メッセージ」という流れが自分の手で体験できて、
Boolean が「ただの true/false」ではなく、「条件分岐の入口」なんだと実感できるはずです。
