--- title: Boolean slug: Web/JavaScript/Reference/Global_Objects/Boolean translation_of: Web/JavaScript/Reference/Global_Objects/Boolean ---
{{JSRef}}

Boolean 是布林值的包覆器。

語法

new Boolean([value])

參數

value {{optional_inline}}
這個Boolean物件的初始值。

說明

傳入的第一個參數值,如果需要的話,會被轉換成布林值。如果沒傳值,或者是0-0、{{jsxref("null")}}、false、{{jsxref("NaN")}}、{{jsxref("undefined")}}、空字串("")的話,這個物件的值會被初始化成false。大多數情況下,DOM 物件 {{domxref("document.all")}} 被傳入後,也會將其初始化為false。至於其他的值,包含所有物件或"false"字串,都會使其初始化為true

不要將原始型別的布林值和這個布林物件搞混,它們並不相同。

在判斷式中,任何物件只要不是 {{jsxref("undefined")}} 或 {{jsxref("null")}} ,儘管是值為false 的 Boolean 物件,都會被轉換成true。舉例來說,下列的 {{jsxref("Statements/if...else", "if")}} 判斷式中的布林值即為true

var x = new Boolean(false);
if (x) {
  // this code is executed
}

以上這個行為和Boolean原始型別沒有關連,反倒是下面的 {{jsxref("Statements/if...else", "if")}} 判斷式會正確地將其視為false

var x = false;
if (x) {
  // this code is not executed
}

不要用Boolean物件將非布林值轉換成布林值。反而要將Boolean視為函式去轉換非布林值:

var x = Boolean(expression);     // 較好
var x = new Boolean(expression); // 不要用

如果你要指定任何物件,包括值為falseBoolean物件,作為Boolean物件的初始值,則該Boolean物件的值依舊為true

var myFalse = new Boolean(false);   // 初始值給false,實際上為true
var g = new Boolean(myFalse);       // 想當然耳,true
var myString = new String('Hello'); // 字串物件,'Hello'
var s = new Boolean(myString);      // 依舊為true

不要使用Boolean物件代替Boolean的原始型別!

屬性

Boolean.length
長度永遠為1。
{{jsxref("Boolean.prototype")}}
原型為Boolean的建構式。

方法

全域的Boolean物件自身沒有任何方法,它只有從原型鏈繼承而來的方法。

Boolean 實體

所有 Boolean 實體會繼承 {{jsxref("Boolean.prototype")}} 。和所有建構式一樣,原型物件會指派給實體那些繼承的屬性和方法。

屬性

{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype', 'Properties')}}

方法

{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype', 'Methods')}}

範例

false 作為初始值建立 Boolean 物件

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

true 作為初始值建立 Boolean 物件

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({});

規範

{{Specifications}}

瀏覽器相容性

{{Compat("javascript.builtins.Boolean")}}

參見