假设下面场景:
根据判断已知变量的值,选择对其它变量赋值
这种情况最常使用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同级别的语句,所以不能在其中执行其它语句,只能做一些类似定义变量、调用方法等,这种简单的事情
上一篇:JS判断是否为Safari浏览器
下一篇:详细了解JS定义全局变量的规则