js中的switch case语句,case指定多个条件时的写法
·
let a = 1;
switch(a){
case 1 || 0:
console.log("aaa");
break;
default:
console.log("else");
}
输出的结果为:aaa
当把a的值改为0的时候,想要的结果是aaa,但是结果却为:else,什么原因呢?
在js中,case后面的语句是一个整体的表达式,不能拆分开,就是说这里的case 1 || 0其实相当于case (1 || 0)。
(1 || 0)的值为1,当a等于1时,两者才相等。
根据switch case规则:
- 每一种case结束的时候加break,不加的话,后面条件不管是否成立都会执行;
- case的条件相当于 ===;
- default等价于else。
想要指定多个条件,应该这样写:
switch(a){
case 1:
case 0:
console.log("aaa");
break;
default:
console.log("else");
}
当a等于1或0时,结果都为:aaa
更多推荐
已为社区贡献2条内容
所有评论(0)