写代码的时候,为了省事,写了这样一行:
switch(n){
case 1:
console.log(1);
break;
case 2||3||4:
(为了省事,因为2,3,4的时候执行一样的代码块)
console.log(222);
break;
case 1:
console.log(1);
break;
default:
}
结果,当n=2或者3或者4 的时候,都结果都是1。懵逼了。还是一个线上问题。
后来找到原因了:
case 后边应该是一个变量。当n为2,3,4的时候(2||3||4)的结果是true。case true 就相当于case 1。
想要方便的写法可以这样:
case 2:
case 3:
case 4:
console.log(222)
只要不break出来,代码就会按照当前的条件接着往下执行。
一个错误,怪自己太粗心!