JavaScript - 逻辑运算符&&和||
一. 逻辑与&&
(短路操作符,操作数1为false时不执行操作数2)
情况 |
返回值 |
false && 操作数2 |
返回操作数1,不执行操作数2 |
true && 操作数2 |
返回操作数2 |
- 注意:false和true是指操作数经过转换之后的布尔值,也就是说操作数可以是所有类型。
- 只有6种情况会被判断为false(undefined、null、空字符串、NaN、false、0),如果操作数1是这六种情况,那么直接返回操作数1。
逻辑与&& 例子 |
结果 |
undefined && 4 |
undefined |
null && 4 |
null |
'' && 4 |
"" |
0 && 4 |
0 |
NaN && 4 |
NaN |
false && 4 |
false |
function check(num){
(num > 10) && num++;
return num;
}
console.log(check(11));// 12
console.log(check(9));// 9
二. 逻辑或||
(也是短路操作符,操作数1为true时不执行操作数2)
情况 |
返回值 |
false || 操作数2 |
返回操作数2 |
true || 操作数2 |
返回操组数1,不执行操作数2 |
- 注意:这里的false和true同样是经过转换后的布尔值,详细见上面6种情况。
逻辑或|| 例子 |
结果 |
undefined || 4 |
4 |
null || 4 |
4 |
'' || 4 |
4 |
0 || 4 |
0 |
NaN || 4 |
4 |
false || 4 |
4 |
- 逻辑或操作符可用于设置参数默认值(很多经典书籍常用的方法)
function show(x){
return x || 10;
}
console.log(show(1));// 1
console.log(show());// 10
三. 综合例子(注意,&&
优先级大于||
)
-
0 && 2 || 1
结果为1。
第一步:执行0 && 2
, 0
被判断为false,直接返回0
。
第二步:执行0 || 1
,0
被判断为false,返回1
。
-
1 || 0 && 2
结果为1.
第一步:逻辑与运算优先级高,先执行0 && 2
,0
被判断为false,直接返回0
。
第二步:执行1 || 0
,1
被判断为true,直接返回1
。
-
1 && 0 || 2 && 0
结果为0。
第一步:执行1 && 0
,1
被判断为true,直接返回0
。
第二步:逻辑与运算优先级高,先执行2 && 0
,2
被判断为true,直接返回0
。
第三步:执行0 || 0
,返回0
。
本文标题:JavaScript - 逻辑运算符&&和||
本文链接:https://www.haomeiwen.com/subject/fetkmctx.html
网友评论