JavaScript/Boolean
Boolean オブジェクトは、JavaScriptにおける真理値を表現するプリミティブ型のラッパーオブジェクトです。論理的な真偽値の操作と型変換において重要な役割を果たします。
真理値の基本
編集真理値の定義
編集JavaScriptでは真理値はtrue
とfalse
の2つの値で表現されます。これらは論理的な判断や比較演算の基本的な結果を表します。
比較演算子による真理値
編集比較演算子は常に論理的な真偽を返します。
console.log(0 < 1); // true console.log(0 > 1); // false console.log(5 === 5); // true console.log(5 !== 5); // false
真理値の型変換
編集JavaScriptのあらゆる値は、暗黙的にブーリアン文脈で真偽値に変換可能です。これは型変換(型強制)の重要な特徴の一つです。
Falsy な値
編集以下の値は偽(false)と評価されます:
false
- 論理的な偽0
- 数値のゼロ-0
- マイナスゼロ0n
- BigIntのゼロ""
- 空文字列null
- null値undefined
- 未定義NaN
- 非数値(Not a Number)
Truthy な値
編集Falsyな値以外のすべての値は真(true)と評価されます。例えば:
- すべての非ゼロ数値
- 空でない文字列
- オブジェクト(空のオブジェクトや配列を含む)
- 関数
Boolean オブジェクト
編集コンストラクタと型変換
編集Booleanには2つの使用方法があります:
- 型変換関数として
const boolFromString = Boolean("abc"); // true const boolFromNumber = Boolean(0); // false console.log(typeof boolFromString); // "boolean"
- ダブル否定演算子による簡潔な変換
const boolByNegation = !!"abc"; // true const boolByNegation2 = !!0; // false
new 演算子による生成
編集new
キーワードを使用すると、Booleanオブジェクトインスタンスが生成されます:
const boolObj = new Boolean(true); console.log(typeof boolObj); // "object" console.log(boolObj.valueOf()); // true
ブーリアンコンテキスト
編集ブーリアンコンテキストとは、値が論理的な真偽に変換される環境を指します。典型的な例:
型変換の例
編集値 | Boolean変換 | typeof
|
---|---|---|
undefined | false | boolean
|
null | false | boolean
|
false | false | boolean
|
true | true | boolean
|
0 | false | boolean
|
1 | true | boolean
|
"" | false | boolean
|
"1" | true | boolean
|
[] | true | boolean
|
[2] | true | boolean
|
注意点と推奨事項
編集- 可能な限り明示的な型変換を使用する
- オブジェクト生成よりもプリミティブ型の使用を推奨
- 比較時は厳密等価演算子
===
を使用する
関連概念
編集- 型強制(Type Coercion)
- 論理演算子
- 比較演算子