
JavaScript ブールオブジェクトの初期値
JavaScript において、ブール値は true または false のいずれかになります。新しいブールオブジェクトを作成する際には、Boolean() コンストラクターを使用することができます。この記事では、Boolean() コンストラクターの初期値について詳しく解説します。
Boolean オブジェクトの初期化
Boolean() コンストラクターを使って新しいブールオブジェクトを作成する場合、引数として任意の値を指定できます。引数を省略した場合は、自動的に false を表すブールオブジェクトが作成されます。
let myBoolean = new Boolean();
console.log(myBoolean); // 出力: Boolean { false }
一方、何らかの値を引数として渡した場合、JavaScript はその値を真偽値に変換し、その真偽値に基づいてブールオブジェクトを作成します。重要なのは、たとえ引数として渡された値が false を表すブールオブジェクトであっても、新しく作成されるブールオブジェクトは true を持つということです。
let myFalseBoolean = new Boolean(false);
console.log(myFalseBoolean); // 出力: Boolean { true }
let myZeroBoolean = new Boolean(0);
console.log(myZeroBoolean); // 出力: Boolean { true }
let myEmptyStringBoolean = new Boolean("");
console.log(myEmptyStringBoolean); // 出力: Boolean { true }
真偽値の判定
JavaScript は、以下の値を false と評価します。
| 値 | 説明 | 
|---|---|
| false | ブール値の false | 
| 0 | 数値の 0 | 
| -0 | 数値の -0 | 
| "" | 空文字列 | 
| null | null 値 | 
| undefined | 未定義値 | 
| NaN | 非数 (Not a Number) | 
上記以外の値はすべて true と評価されます。つまり、オブジェクトや配列 (空であっても) は true と評価されます。
警告: Boolean コンストラクターの使用
Boolean() コンストラクターを直接使用することは一般的ではありません。多くの場合、JavaScript は自動的に値をブール値に型変換するためです。たとえば、if 文や while ループでは、条件式に指定された値は自動的にブール値に変換されます。
参考資料
よくある質問
Q1: Boolean() コンストラクターをいつ使うべきですか?
A1: 多くの場合、Boolean() コンストラクターを直接使用する必要はありません。JavaScript は自動的に値をブール値に型変換するためです。ただし、明示的にブールオブジェクトを作成したい場合にのみ使用してください。
Q2: なぜ new Boolean(false) は true を返すのですか?
A2: new Boolean(false) は、false を引数として新しいブールオブジェクトを作成します。オブジェクトは常に truthy な値として扱われるため、true を返します。重要なのは、新しいブールオブジェクトが作成されていることです。既存のブール値を変更しているわけではありません。
Q3: ブール値とブールオブジェクトの違いは何ですか?
A3: ブール値 (true または false) はプリミティブ型であり、ブールオブジェクトはオブジェクト型です。ブールオブジェクトは、ブール値をラップしたオブジェクトであり、メソッドやプロパティを持つことができます。ただし、ほとんどの場合、ブール値を使用する方がシンプルで効率的です。
その他の参考記事:JavaScript Boolean のブールオブジェクト