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 のブールオブジェクト