布尔运算符
布尔运算符用于将表达式转为布尔值,一共包含四个运算符。
-
取反运算符:
! -
且运算符:
&& -
或运算符:
|| -
三元运算符:
?:
取反运算符(!)
取反运算符是一个感叹号,用于将布尔值变为相反值,即
true
变成
false
,
false
变成
true
。
!true // false !false // true
对于非布尔值,取反运算符会将其转为布尔值。可以这样记忆,以下六个值取反后为
true
,其他值都为
false
。
-
undefined -
null -
false -
0 -
NaN -
空字符串(
'')
!undefined // true
!null // true
!0 // true
!NaN // true
!"" // true
!54 // false
!'hello' // false
![] // false
!{} // false
上面代码中,不管什么类型的值,经过取反运算后,都变成了布尔值。
如果对一个值连续做两次取反运算,等于将其转为对应的布尔值,与
Boolean
函数的作用相同。这是一种常用的类型转换的写法。
!!x // 等同于 Boolean(x)
上面代码中,不管
x
是什么类型的值,经过两次取反运算后,变成了与
Boolean
函数结果相同的布尔值。所以,两次取反就是将一个值转为布尔值的简便写法。
且运算符(&&)
且运算符(
&&
)往往用于多个表达式的求值。
它的运算规则是:如果第一个运算子的布尔值为
true
,则返回第二个运算子的值(注意是值,不是布尔值)