--- title: Boolean slug: Web/JavaScript/Reference/Global_Objects/Boolean translation_of: Web/JavaScript/Reference/Global_Objects/Boolean ---
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); // 不要用
如果你要指定任何物件,包括值為false
的Boolean
物件,作為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
Boolean
的建構式。全域的Boolean
物件自身沒有任何方法,它只有從原型鏈繼承而來的方法。
Boolean
實體所有 Boolean
實體會繼承 {{jsxref("Boolean.prototype")}} 。和所有建構式一樣,原型物件會指派給實體那些繼承的屬性和方法。
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({});