JavaScript Boolean( new Boolean(false) ) 其實是true


  Boolean類型是JavaScript原始數據類型(primitive type)之一;常用來表示 真或假,是或否;這個類型只有兩個值:保留字true和false

  一般用於控制語句:如下

if(Boolean){
   //do something
  console.log('true')  
}else{
   //do something
  console.log('false')  
}

  JavaScript的其他數據類型都可以轉換成Boolean類型,注意!!!只有這幾種類型會轉換為false

  • undefined
  • null
  • 0
  • -0
  • NaN
  • ""  (空字符串)

  其他的都會轉換為true。空對象{},空數組[] , 負數 ,false的對象包裝等

  

    if(-1){
      console.log('-1轉換為true');
    }
    if({}){
      console.log('{}轉換為true');
    }
    if([]){
      console.log('[]轉換為true');
    }
    if(new Boolean(false)){
      console.log('new Boolean(false)轉換為true');
    }

  終於到了重點,new Boolean(false)是布爾值的包裝對象    typeof (new Boolean(false))  // 'object'  ,所以 轉換為boolean是true,而不是false

  我們知道,原始數據類型是沒有方法的,  但是我們卻可以有如下用法

true.toString()   //'true'

  這是因為,在對原始類型使用方法時,會自動通過Boolean()構造一個臨時對象,訪問的方法均來自這個臨時對象,同樣的數字和字符串對應有Number()和String() 所以都可以調用方法如(toString());而 undefined 和 null 沒有對應的包裝對象,所以訪問他們的屬性會報錯,如下。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM