基础值(原始值)
原始的布尔范例boolean
有两个值: false
和 true
。
> typeof false
'boolean'
> typeof true
'boolean'
建立布尔值的体式格局
直接用字面量
var a = false; var b = true;
用Boolean函数,将其他恣意值转换成对应的原始布尔值。
> a = Boolean() false > a = Boolean(true) true
布尔范例与其他范例之间的转换
其他范例值转换成布尔值的对应关联
对应关联表以下所示:
其他范例值 | 转换成的布尔值 |
---|---|
undefined | false |
null | false |
布尔值 | 不必转换 |
数字 | 0 ,NaN 转化成false ,其他数字范例转换成true |
字符串 | 只要空字符串'' 转换成false ,其他都转换成true |
对象 | 悉数转换为true |
依据上表可总结为,js中五中基础数据范例undefined、null、布尔型、数字和字符串,外加对象共六中范例中,只要undefined
、null
、布尔值中的false
、数字中的0
和NaN
,和字符串中的空字符串''
,总计6
种值被转换成false
, 其他的都被转换成true
。
被转换成false
的鸠合叫假值,被转换成true
的鸠合就真值。
由上可知,以下为假值。
undefined, null
false
0, NaN
”
一切其他的值,包含对象等都是真值。
由于undefined
和null
都是假值,所以我们一般用于推断一个变量x
是不是有值
,
if (x){
// x 有值
}else{
// x 无值
}
须要注重,上述推断会把一切的假值诠释成“没有值”,而不仅仅是undefined
和null
.
如当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