天天看點

JS内置對象Boolean詳解

  • 文法:new Boolean([value])
  • 如果第一個參數不是布爾值,則會将其轉換為布爾值。
  • 如果省略該參數,或者其值為 0、-0、null、false、NaN、undefined、或者空字元串(""),則生成的 Boolean 對象的值為 false。
  • 任何其他的值,包括值為​

    ​"false"​

    ​​ 的字元串和任何對象,都會建立一個值為​

    ​true​

    ​​ 的​

    ​Boolean​

    ​ 對象。
  • 注意不要将基本類型中的布爾值​

    ​true​

    ​​ 和​

    ​false​

    ​​ 與值為​

    ​true​

    ​​ 和​

    ​false​

    ​​ 的​

    ​Boolean​

    ​ 對象弄混了。

任何不是 undefined 和 null 的對象,包括值為 false 的 Boolean 對象,直接用于條件語句時都會被當做 true 來對待。例如,下面 if 語句中的條件為真:

var x = new Boolean(null)
if (x) {
    // 這裡的代碼會被執行
    console.log('可以執行')
}

===

var x = null
if (x) {
    // 這裡的代碼不會被執行
    console.log('可以執行') // 不會輸出
}

===

var x = false;
if (x) {
  // 這裡的代碼不會執行
}      

對于任何對象,即使是值為 ​

​false​

​​ 的 ​

​Boolean​

​​ 對象,當将其傳給 ​

​Boolean​

​​函數時,生成的 ​

​Boolean​

​​ 對象的值都是 ​

​true​

​。

var myFalse = new Boolean(false);   // false
var g = new Boolean(myFalse);       // true
var myString = new String("Hello");
var s = new Boolean(myString);      // true      
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({});