原文作者: 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