【javascript系列】布爾類型及轉換

基本值(原始值)

原始的布爾類型boolean有兩個值: falsetrue函數

> typeof false
'boolean'
> typeof true
'boolean'

建立布爾值的方式

  1. 直接用字面量code

    var a = false;
    var b = true;
  2. 用Boolean函數,將其餘任意值轉換成對應的原始布爾值。對象

    > a = Boolean()
    false
    > a = Boolean(true)
    true

布爾類型與其餘類型之間的轉換

其餘類型值轉換成布爾值的對應關係

對應關係表以下所示:ip

其餘類型值 轉換成的布爾值
undefined false
null false
布爾值 不用轉換
數字 0NaN轉化成false,其餘數字類型轉換成true
字符串 只有空字符串''轉換成false,其餘都轉換成true
對象 所有轉換爲true

根據上表可總結爲,js中五中基本數據類型undefined、null、布爾型、數字和字符串,外加對象共六中類型中,只有undefinednull、布爾值中的false、數字中的0NaN,和字符串中的空字符串'',共計6種值被轉換成false, 其他的都被轉換成true字符串

被轉換成false的集合叫假值,被轉換成true的集合就真值
由上可知,如下爲假值。table

  • undefined, null變量

  • falseobject

  • 0, NaN構造函數

  • ''數據類型

全部其餘的值,包括對象等都是真值。
由於undefinednull都是假值,因此咱們一般用於判斷一個變量x是否有值

if (x){
    // x 有值
}else{
    // x 無值
}

須要注意,上述判斷會把全部的假值解釋成「沒有值」,而不單單是undefinednull.
如當x= 0時,上述判斷會認爲x沒有值,實際上x是有值的,且爲0.
因此上述判斷要謹慎使用。

轉換成布爾值的方法

自動轉換

javscript中,凡是須要布爾值的地方,均可以提供任意類型的值,它們會自動被轉化成相應的布爾值。例如條件表達式或邏輯表達式中。

手動轉換

手動將其餘類型的值轉換成布爾值有如下三種方法

1. Boolean(value) //使用Boolean函數,此處做爲一個普通函數被調用,而不是構造函數。
2. value ? true : false
3. !! value  //使用兩次非運算符,將其轉換成對應的布爾類型。

三種方法都很經常使用,其中最好使用Boolean(value)這個方法,直觀又方便。

下面來看一些將其餘類型轉換成布爾類型的例子。

undefined

> Boolean(undefined)
false

null

> Boolean(null)
false

boolean

> Boolean(false)
false
> Boolean(true)
true

數字

> Boolean(0)
false
> Boolean(133)
true
> Boolean(NaN)
false

字符串

> Boolean('')
false
> Boolean('dd')
true
> Boolean(' ')    //注意,空格字符串不是空字符
true
> Boolean('false')
true

對象

所用的對象都轉化成 true.

> Boolean([])
true
> Boolean({})
true
> Boolean(new Boolean(false))    //new Boolean(false)獲得是一個boolean型object.
true
> Boolean(new Number(0))    //同上
true
> Boolean(new String(''))    //同上
true
相關文章
相關標籤/搜索