- &&
只有A成立的条件下,才会考虑B,A若不成立,就不会考虑B。这种情况下就使用 A && B
expr1 && expr2
如果 expr1可以转换成false,那么就返回 expr1,否则返回 expr2
即如果 expr1如下,那就返回 expr1,否则就返回 expr2
- ""(空字符串)
- 0,NaN
- Null (空对象)
- undefined
当操作布尔值时,只有当 expr1 和expr2 都为true时,返回true
否则返回false.
**因为逻辑表达式是从左到右求值的,所以存在运算短路现象
false && (anything)
当expr1 为false时, 将不会对expr2求值,直接返回false。
**
||
A要是成立了,就不考虑B了。若A不成立再考虑B,这时使用 A || B
expr1 || expr2
如果 expr1 可以转换成true, 返回 expr1,否则返回 expr2
即当 expr1 如下时,返回expr1,否则返回 expr2
- 2(非0数值)
- 非null对象
- 非空字符串
当操作布尔值时,expr1、expr2只要有一个为true,则返回true,
都为false时,返回false.
同样存在逻辑短路现象
true || (anything)
expr1 为true时,将不对expr2求值,直接返回true.
- !
! expr
如果 expr 可以转换成true 则返回false. 否则返回true.