布尔运算符
布尔运算符用于将表达式转为布尔值,一共蕴含四个运算符。
- 取反运算符:
!
- 且运算符:
&&
- 或运算符:
||
- 三元运算符:
?:
且运算符(&&)
如果第一个运算子的布尔值为 true
,则返回第二个运算子的值(留神是值,不是布尔值);如果第一个运算子的布尔值为 false
,则间接返回第一个运算子的值,且不再对第二个运算子求值。
't' && ''//""
't' && 'f' // "f"
't' && (1 + 2) // 3
''&&'f'//""
''&&'' // ""
var x = 1;
(1 - 1) && (x += 1) // 0
x // 1
或运算符(||)
如果第一个运算子的布尔值为 true
,则返回第一个运算子的值,且不再对第二个运算子求值;如果第一个运算子的布尔值为 false
,则返回第二个运算子的值。
't' || ''//"t"'t' || 'f' // "t"
''||'f'//"f"'' || ''//""
三元条件运算符(?:)
如果第一个表达式的布尔值为 true
,则返回第二个表达式的值,否则返回第三个表达式的值。
't' ? 'hello' : 'world' // "hello"
0 ? 'hello' : 'world' // "world"
运算程序
JavaScript 各种运算符的优先级别(Operator Precedence)是不一样的。优先级高的运算符先执行,优先级低的运算符后执行。
4 + 5 * 6 // 34
下面的代码中,乘法运算符(*
)的优先性高于加法运算符(+
),所以先执行乘法,再执行加法,相当于上面这样。
4 + (5 * 6) // 34