--- title: Boolean slug: Web/JavaScript/Reference/Global_Objects/Boolean tags: - Boolean - Class - JavaScript - Reference - クラス translation_of: Web/JavaScript/Reference/Global_Objects/Boolean ---
Boolean オブジェクトは論理値のオブジェクトラッパーです。
一番目の引数に渡された値は、必要に応じて論理値に変換されます。値が省略された場合や、値が 0, -0, {{jsxref("null")}}, false, {{jsxref("NaN")}}, {{jsxref("undefined")}} あるいは空文字列 ("") であった場合、オブジェクトは false の初期値を持ちます。それ以外のあらゆる値は、オブジェクトや "false" という文字列も含めて、 true の初期値を持つオブジェクトを生成します。
プリミティブな Boolean の true や false を Boolean オブジェクトの true や false という値と混同しないでください。
その値が {{jsxref("undefined")}} や {{jsxref("null")}} でないオブジェクトは、値が false の Boolean オブジェクトも含めて、条件文に通されると全て true に評価されます。例えば、以下の {{jsxref("Statements/if...else", "if")}} 文の条件は true に評価されます。:
var x = new Boolean(false);
if (x) {
// このコードは実行されます。
}
この振る舞いは Boolean プリミティブには適用されません。例えば、以下の {{jsxref("Statements/if...else", "if")}} 文の条件は false に評価されます。:
var x = false;
if (x) {
// このコードは実行されません
}
Boolean オブジェクトを論理値でない値から論理値への変換に使わないでください。代わりに、 Boolean を関数として使ったり、二重否定演算子を使用したりすることで同じことが行えます。
var x = Boolean(expression); // こちらを使うか... var x = !!(expression); // ...こちらを使ってください var x = new Boolean(expression); // これは使わないでください!
Boolean オブジェクトの初期値としてオブジェクトを指定した場合、それが値が false の Boolean オブジェクトであっても、新しい 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 オブジェクトを生成します。true または false のどちらかを返します。 {{jsxref("Object.prototype.toString()")}} メソッドを上書きします。var bNoParam = new Boolean();
var bZero = new Boolean(0);
var bNull = new Boolean(null);
var bEmptyString = new Boolean('');
var bfalse = new Boolean(false);
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({});
| 仕様書 |
|---|
| {{SpecName('ESDraft', '#sec-boolean-objects', 'Boolean')}} |
{{Compat("javascript.builtins.Boolean")}}