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

JavaScript
スポンサーリンク

まず 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
JavaScript

truefalse はキーワードなので、
文字列の "true" / "false" とは全く別物です。

console.log(typeof true);   // "boolean"
console.log(typeof "true"); // "string"
JavaScript

typeof で型を調べると、
trueboolean"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

> < >= <= === !== などの比較演算子は、
必ず truefalse を返します。

この結果をそのまま変数に入れておくこともできます。

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("ログインしていません");
}
JavaScript

if (条件) の「条件」のところに、
Boolean(true / false になる式)が書かれます。

もちろん、比較式をそのまま書いても OK です。

let age = 16;

if (age >= 18) {
  console.log("大人です");
} else {
  console.log("未成年です");
}
JavaScript

Boolean 変数をかませると読みやすくなる

条件式を直接書くより、
一度 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("入場できません");
}
JavaScript

age >= 18 が true
かつ
hasTicket が true

なら「入場できます」になります。

OR(または):||

|| は「どちらか一方でも true なら true」です。

let isAdmin = false;
let isOwner = true;

if (isAdmin || isOwner) {
  console.log("設定画面にアクセスできます");
} else {
  console.log("アクセスできません");
}
JavaScript

NOT(否定):!

! は 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 になる代表的な値

細かいリストは覚えなくて大丈夫ですが、
最低限これだけは知っておくと安心です。

false
0
""(空文字)
null
undefined
NaN

これらは if の条件に入れると、false とみなされます。

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

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

Boolean() で真偽値に変換して確認できる

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

フラグの変数名は、

isXxx
hasXxx
canXxx

のように、「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 型は truefalse の2つだけ。
"true""false" は文字列であって、Boolean ではない。

比較演算子(>, <, >=, <=, ===, !==)は必ず Boolean を返す。
等価比較には、型まで見る === / !== を使う。

if 文の条件には、Boolean(または Boolean になる式)を書く。
複雑な条件は、&&(かつ), ||(または), !(ではない)で組み合わせる。

Boolean 以外の値も、if の中では truthy / falsy として解釈される。
0, "", null, undefined, NaN, false は falsy、それ以外は基本 truthy。

ここが重要です。
Boolean を「はい/いいえ」「〜かどうか」を表す型として意識し、
isXxx / hasXxx のようなフラグでプログラムの条件を表現できるようになると、
if 文や while 文が“読める・書けるロジック”に変わっていきます。

もしよければ、次のようなミニ練習をしてみてください。

  1. age に数字を入れる
  2. isAdult という Boolean 変数を age >= 18 で作る
  3. if 文で isAdult が true なら「大人です」、false なら「未成年です」と表示する

この小さなプログラムを書くことで、
「比較 → Boolean → if → メッセージ」という流れが自分の手で体験できて、
Boolean が「ただの true/false」ではなく、「条件分岐の入口」なんだと実感できるはずです。

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