【しんぎち】
真偽値(ブーリアン) とは?
最終更新:
💡 YESかNOかの「二択スイッチ」
真か偽の二つの値を持つデータ型。条件の判定結果や、ある状態かどうかを表すフラグなどに使う。trueとfalseはJavaScriptなどでの表記。
📌 このページのポイント
- 真か偽の二つの値を表し、条件判定やフラグに使う
- 条件式で許される型や変換規則は、プログラミング言語による
- JavaScriptの比較演算は、trueかfalseの結果を返す
- JavaScriptのfalsyな値は、falseそのものと区別する
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型の値と、条件の中で真や偽として扱われるほかの型の値は区別しよう