首页 > 技术分享 > JavaScript
收藏

JS三元表达式多语句写法

03/11 17:54
大潇博客 原创文章,转载请标明出处

假设下面场景:

根据判断已知变量的值,选择对其它变量赋值

这种情况最常使用if语句,条件较多时,也可使用switch方法


还有一种简洁方法,就是使用三元表达式


比如通过判断变量A的值,对变量B进行赋值

var B,A=5;

A==1 ? B=1 : A==2 ? B=2 : A==3 ? B=3 : A==4 ? B=4 : A==5 ? B=5 : B='NaN';

alert(B)

上面的写法即为逐个对比,然后赋值的过程

若不理解,可通过下面加括号后分段理解

var A=4;

A==1 ? B=1 : 

(A==2 ? B=2 : 

(A==3 ? B=3 : 

(A==4 ? B=4 : 

(A==5 ? B=5 : B='NaN'))));

alert(B)


通过判断对多个变量赋值:

var B,C,A=5;

A==1 ? (B=1,C=2) : 

A==2 ? (B=2,C=3) : 

A==3 ? (B=3,C=4) : 

A==4 ? (B=4,C=5) : 

A==5 ? (B=5,C=6) : 

B='NaN';

alert(B)

alert(C)

对于这种情况,多个变量之间一定使用逗号分隔,并且整段三元运算语句中,禁止出现分号,分号只能用在语句末尾,否则会报错

还可以从上面语句看出,定义多个变量时,一定要用括号包起来,否则也会报错


还有一种情况,通过判断多个变量,再对多个变量赋值,正确写法:

var A=2,B=3,C,D;

A==1&&B==2 ? (C=2,D=3) : A==2&&B==3 ? (C=3,D=4) : A==3&&B==4 ? (C=4,D=5) : (C=5,D=6);

alert(C)

alert(D)

如此我们也可以看出,对已知变量可直接使用“&&”连接写判断,不比加括号

但在对变量赋值时,要用括号包起来


需要注意的是,整个三元运算语句中禁止出现“;”,分号只能用在语句末尾,整段三元运算符中禁止使用return等语句

我们可以理解为:三元表达式本身就是一个和return同级别的语句,所以不能在其中执行其它语句,只能做一些类似定义变量、调用方法等,这种简单的事情


打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311