【しんぎち】

真偽値(ブーリアン) とは?

最終更新:
💡 YESかNOかの「二択スイッチ」

真か偽の二つの値を持つデータ型。条件の判定結果や、ある状態かどうかを表すフラグなどに使う。trueとfalseはJavaScriptなどでの表記。

📌 このページのポイント
真偽値:true か false の二択 true false 真・条件が成立 偽・条件が不成立 JavaScriptでの比較例 5 > 3 → true 10 === 20 → false 0は数値。条件で偽になるが、falseとは別
trueとfalseはBoolean型の値。条件で真や偽として扱われるほかの型の値とは区別する。
ひよこ ひよこ
trueとfalseだけで、何ができるの?
ペンギン先生 ペンギン先生
ログイン済みか、在庫があるかなど、二択で表す状態に使えるよ。例えばJavaScriptで5 > 3はtrue、10 === 20はfalseになる。if文などでその結果に応じて処理を分けられるんだ
ひよこ ひよこ
falsy値ってfalseと同じなの?
ペンギン先生 ペンギン先生
JavaScriptではfalseのほか、0、-0、0n、空文字、null、undefined、NaNも、条件判定で偽として扱うよ。でも0は数値、空文字は文字列で、Boolean型のfalseそのものとは違う。変換規則をほかの言語へそのまま当てはめないようにしよう
ひよこ ひよこ
文字列の「false」も偽になる?
ペンギン先生 ペンギン先生
JavaScriptでは空でない文字列なので、"false"も"0"も真として扱われるよ。通常のオブジェクトや空配列も真として扱う。文字列の内容をtrue/falseとして読みたいなら、条件で明示的に比較するなど、期待する形式を決めるんだ
ひよこ ひよこ
==と===はどう違うの?
ペンギン先生 ペンギン先生
JavaScriptの==は型が違う場合に変換を伴って比べるので、"1" == 1はtrueになる。===は型が違えばfalseなので、"1" === 1はfalseだよ。どちらも比較の結果はBoolean型。条件で偽になることと、falseに厳密に等しいことは別なんだ
もっと詳しく知りたい人へ

JavaScriptで、通常のオブジェクト以外にも偽として扱う例外はある?

ブラウザーの互換性のため、document.allは特殊な例外として偽へ変換される。通常のオブジェクトの規則とは異なり、新しいコードで真偽値の表現に使うものではない。ECMAScriptのToBooleanにこの互換処理が定められている。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「真偽値」って出てきたら「真か偽の二択を表す値」と思えばだいたいOK!
📖 おまけ:英語の意味
「Boolean」 = ブールに由来する論理の名称
💬 19世紀の数学者ジョージ・ブールの論理代数にちなむ名前だよ。Boolean型の値と、条件の中で真や偽として扱われるほかの型の値は区別しよう

参考資料

← 用語集にもどる