JavaScriptのBooleanオブジェクトの初期値は?

```html JavaScript ブールオブジェクトの初期値

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