js中独立的与运算(&&)表达式

题目可能描述不够规范,就是这么个意思吧。话说我阅读同事的代码,发现有这种表达式:

A && B;

我就觉得十分惊异,不懂是什么意思。按照习惯用法,”&&“应该用在逻辑表达式里,比如

if( a && b ) {
	。。。
}

查了资料,原来意思是这样的:

A && B;

如果A为true,则运行B,否则转向下一行。所以这里”B“不是一个变量,而是一个完整的表达式,比如赋值语句,或者其他执行语句,比如console.log()。它其实相当于

if(A){
 B;
}

所以我同事的写法比较简洁。有时可以用于精简switch语句等:

var n = 3;
switch(n){
    case1:
        console.log(1);
        break;
    case2:
        console.log(2);
        break;
    case3:
        console.log(3);
        break;
    default:
        console.log("null");

===>

var n = 3;
(n == 1) && console.log(1);
(n == 2) && console.log(2);
(n == 3) && console.log(3);
( ! n ) && console.log("null");

但好像没有多大必要。精简和可读性有时需要权衡。

参考文章:
JS &&(与运算)详解

posted on 2022-12-05 11:58  左直拳  阅读(0)  评论(0)    收藏  举报  来源

导航