【javascript系列】布尔范例及转换

基础值(原始值)

原始的布尔范例boolean有两个值: falsetrue

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

建立布尔值的体式格局

  1. 直接用字面量

    var a = false;
    var b = true;
  2. 用Boolean函数,将其他恣意值转换成对应的原始布尔值。

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

布尔范例与其他范例之间的转换

其他范例值转换成布尔值的对应关联

对应关联表以下所示:

其他范例值转换成的布尔值
undefinedfalse
nullfalse
布尔值不必转换
数字 0NaN转化成false,其他数字范例转换成true
字符串只要空字符串''转换成false,其他都转换成true
对象悉数转换为true

依据上表可总结为,js中五中基础数据范例undefined、null、布尔型、数字和字符串,外加对象共六中范例中,只要undefinednull、布尔值中的false、数字中的0NaN,和字符串中的空字符串'',总计6种值被转换成false, 其他的都被转换成true

被转换成false的鸠合叫假值,被转换成true的鸠合就真值
由上可知,以下为假值。

  • undefined, null

  • false

  • 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
    原文作者:Tammy
    原文地址: https://segmentfault.com/a/1190000007274034
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞