Boolean

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Boolean 是布林值的包覆器。

語法

new Boolean([value])

參數

value 選擇性

這個Boolean物件的初始值。

說明

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

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

在判斷式中,任何物件只要不是 undefinednull ,儘管是值為falseBoolean 物件,都會被轉換成true。舉例來說,下列的 if 判斷式中的布林值即為true

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

以上這個行為和Boolean原始型別沒有關連,反倒是下面的 if 判斷式會正確地將其視為false

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

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

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

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

js
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。

Boolean.prototype

原型為Boolean的建構式。

方法

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

Boolean 實體

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

方法

Boolean.prototype.toString()

Returns a string of either true or false depending upon the value of the object. Overrides the Object.prototype.toString() method.

Boolean.prototype.valueOf()

Returns the primitive value of the Boolean object. Overrides the Object.prototype.valueOf() method.

範例

false 作為初始值建立 Boolean 物件

js
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 物件

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

規範

Specification
ECMAScript Language Specification
# sec-boolean-objects

瀏覽器相容性

BCD tables only load in the browser

參見