Boolean() コンストラクター
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
Boolean() コンストラクターは Boolean オブジェクトを生成します。関数として呼び出された場合、論理型のプリミティブ値を返します。
試してみましょう
const flag = new Boolean();
console.log(typeof flag);
// 予想される結果: object
console.log(flag === false);
// 予想される結果: false
const flag2 = Boolean();
console.log(typeof flag2);
// 予想される結果: boolean
console.log(flag2 === false);
// 予想される結果: true
構文
new Boolean(value)
Boolean(value)
引数
value-
この
Booleanオブジェクトの初期値です。
返値
Boolean() が関数として(new なしで)呼び出された場合、 value を 論理型に変換された値として返します。
Boolean() がコンストラクターとして(new をつけて)呼び出された場合、 value を論理値型のプリミティブに変換し、それをラップした Boolean オブジェクトを返します。このオブジェクトはプリミティブ型ではありません。
警告:
Boolean をコンストラクターとして使用する例は、ほとんど見つからないはずです。
解説
最初の引数として渡された値は論理値に変換されます。値が省略されるか、0、-0、0n、null、false、NaN、 undefined、または空文字列 ("") の場合、オブジェクトの初期値は false になります。それ以外にもすべての値(オブジェクト、空の配列 ([])、文字列 "false" を含む)は、初期値が true のオブジェクトを生成します。
メモ:
標準外のプロパティ document.all がこのコンストラクターの引数として使われた場合、結果は false の値を持った Boolean オブジェクトになります。このプロパティは古く標準外であるため、使用しないでください。
例
>Boolean オブジェクトを生成して初期値を false とする
const bZero = new Boolean(0);
const bNull = new Boolean(null);
const bEmptyString = new Boolean("");
const bfalse = new Boolean(false);
typeof bfalse; // "object"
Boolean(bfalse); // true
Boolean オブジェクトを Boolean() でプリミティブに変換すると、オブジェクトが false の値を保持していても常に true を生成することに注意してください。したがって、Boolean ラッパー オブジェクトの構築は常に避けるようにお勧めします。
ラッパーオブジェクトからプリミティブ値を取得する必要がある場合、Boolean() 関数を使用するのではなく、そのオブジェクトの valueOf() メソッドを使用してください。
const bfalse = new Boolean(false);
bfalse.valueOf(); // false
Boolean オブジェクトを生成して初期値を true とする
const btrue = new Boolean(true);
const btrueString = new Boolean("true");
const bfalseString = new Boolean("false");
const bSuLin = new Boolean("Su Lin");
const bArrayProto = new Boolean([]);
const bObjProto = new Boolean({});
仕様書
| 仕様書 |
|---|
| ECMAScript® 2027 Language Specification> # sec-boolean-constructor> |