【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
相关文章
相关标签/搜索