JS布爾值(Boolean)轉換規則


原文作者: louis

原文鏈接: http://louiszhai.github.io/2015/12/11/js.boolean/

語法

眾所周知, JavaScript有五個基本的值類型:number、string、boolean、null和undefined。除了null和undefined以外,其他三個具有所謂的基本包裝對象。可以使用內置構造函數Number()、String()、Boolean()創建包裝對象。

boolean是JS的6種數據類型(number,string,object,boolean,null,undefined)之一,有且只有兩種值:true和false

1.使用Boolean(value)方法可以強制轉換任意值為boolean類型,除了以下六個值,其他都是自動轉為true:

  • undefined
  • null
  • -0
  • +0
  • NaN
  • ‘’(空字符串)
Boolean(undefined) // false Boolean(null) // false Boolean(0) // false Boolean(NaN) // false Boolean('') // false 
  • 1
  • 2
  • 3
  • 4
  • 5

2.對象的轉換規則

所有對象的布爾值都是true,甚至連false對應的布爾對象也是true

請注意,空對象{}和空數組[]也會被轉成true。

Boolean(new Boolean(false))// Boolean對象會轉成true Boolean([]) // 空數組會轉成true Boolean({}) // 空對象會轉成true 
  • 1
  • 2
  • 3

3.其中有一些讓人困惑的地方

&& 表達式從第一個開始,遇到值為false的表達式,則返回表達式本身,否則返回最后一個表達式

|| 和 ! 邏輯運算符原理類似

var obj = new Boolean(false); console.log(obj && true);//true console.log(true && obj);//false 
  • 1
  • 2
  • 3

因此,第二個console實際上打印的是obj對象的值,即false

------------------------------------------------------------------------------

補充:number類型除了0對應false外,其他都對應true

 


免責聲明!

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



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