一、概述
布尔运算符用于将表达式转为布尔值,一共包含四个运算符。
-
取反运算符:
!
-
且运算符:
&&
-
或运算符:
||
-
三元运算符:
?:
二、具体描述
1.取反运算符(!)
取反运算符是一个感叹号,用于将布尔值变为相反值,即true
变成false
,false
变成true
。
对于非布尔值,取反运算符会将其转为布尔值。可以这样记忆,以下六个值取反后为true
,其他值都为false
。
-
undefined
-
null
-
false
-
0
-
NaN
-
空字符串(
''
)
如果对一个值连续做两次取反运算,等于将其转为对应的布尔值,与Boolean
函数的作用相同。这是一种常用的类型转换的写法。
!!x
等价于
Boolean(x)
2.且运算符(&&)
且运算符(&&
)往往用于多个表达式的求值。
它的运算规则是:如果第一个运算子的布尔值为true
,则返回第二个运算子的值(注意是值,不是布尔值);如果第一个运算子的布尔值为false
,则直接返回第一个运算子的值,且不再对第二个运算子求值。
*一旦遇到false就返回,若未遇到则返回最后一个值
if (i) {
doSomething();
}// 等价于
i && doSomething();
4、或运算符(||)
或运算符(||
)也用于多个表达式的求值。它的运算规则是:如果第一个运算子的布尔值为true
,则返回第一个运算子的值,且不再对第二个运算子求值;如果第一个运算子的布尔值为false
,则返回第二个运算子的值。
*一旦遇到true就返回,若未遇到则返回最后一个值
5、三元条件运算符(?:)
三元条件运算符由问号(?)和冒号(:)组成,分隔三个表达式。它是 JavaScript 语言唯一一个需要三个运算子的运算符。如果第一个表达式的布尔值为true
,则返回第二个表达式的值,否则返回第三个表达式的值。