Boolean

Boolean オブジェクトは論理値のオブジェクトラッパーです。

解説

一番目の引数に渡された値は、必要に応じて論理値に変換されます。値が省略された場合や、値が 0, -0, null, false, NaN, undefined あるいは空文字列 ("") であった場合、オブジェクトは false の初期値を持ちます。それ以外のあらゆる値は、オブジェクトや "false" という文字列も含めて、 true の初期値を持つオブジェクトを生成します。

プリミティブな BooleantruefalseBoolean オブジェクトの truefalse という値と混同しないでください。

その値が undefinednull でないオブジェクトは、値が falseBoolean オブジェクトも含めて、条件文に通されると全て true に評価されます。例えば、以下の if 文の条件は true に評価されます。:

var x = new Boolean(false);
if (x) {
  // このコードは実行されます。
}

この振る舞いは Boolean プリミティブには適用されません。例えば、以下の if 文の条件は false に評価されます。:

var x = false;
if (x) {
  // このコードは実行されません
}

Boolean オブジェクトを論理値でない値から論理値への変換に使わないでください。代わりに、 Boolean を関数として使ったり、二重否定演算子を使用したりすることで同じことが行えます。

var x = Boolean(expression);     // こちらを使うか...
var x = !!(expression);          // ...こちらを使ってください
var x = new Boolean(expression); // これは使わないでください!

Boolean オブジェクトの初期値としてオブジェクトを指定した場合、それが値が falseBoolean オブジェクトであっても、新しい Boolean オブジェクトは true の値を持ちます。

var myFalse = new Boolean(false);   // 初期値は false
var g = Boolean(myFalse);       // 初期値は true
var myString = new String('Hello'); // 文字列オブジェクト
var s = Boolean(myString);      // 初期値は true

Boolean プリミティブの代わりに Boolean オブジェクトを使わないでください。

Note: 標準外の document.all プロパティがこのコンストラクターの引数として使用された場合、結果は Boolean オブジェクトで値は false となります。このプロパティは古く、標準外で、使用するべきではありません。

コンストラクター

Boolean()
新しい Boolean オブジェクトを生成します。

インスタンスメソッド

Boolean.prototype.toString()
オブジェクトの値に応じて文字列で true または false のどちらかを返します。 Object.prototype.toString() メソッドを上書きします。
Boolean.prototype.valueOf()
Boolean オブジェクトのプリミティブ値を返します。 Object.prototype.valueOf() メソッドを上書きします。

Boolean オブジェクトを初期値 false で生成

var bNoParam = new Boolean();
var bZero = new Boolean(0);
var bNull = new Boolean(null);
var bEmptyString = new Boolean('');
var bfalse = new Boolean(false);

Boolean オブジェクトを初期値 true で生成

var btrue = new Boolean(true);
var btrueString = new Boolean('true');
var bfalseString = new Boolean('false');
var bSuLin = new Boolean('Su Lin');
var bArrayProto = new Boolean([]);
var bObjProto = new Boolean({});

仕様書

仕様書
ECMAScript (ECMA-262)
Boolean の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
BooleanChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
Boolean() constructorChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
toSource
非標準
Chrome 未対応 なしEdge 未対応 なしFirefox 未対応 1 — 74
補足
未対応 1 — 74
補足
補足 Starting in Firefox 74, toSource() is no longer available for use by web content. It is still allowed for internal and privileged code.
IE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしFirefox Android 完全対応 4Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし
toStringChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
valueOfChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100

凡例

完全対応  
完全対応
未対応  
未対応
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
実装ノートを参照してください。
実装ノートを参照してください。

関連情報