携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情
case穿透(续)
对于switch语句,其中的break是可以省略的,但是省略之后很可能会出现case穿透效果,对于我们新手来说,不建议省略break语句。
举个栗子:✨
var num = 3;
switch (num) {
case 1:
console.log('1');
break;
case 2:
console.log('2');
break;
case 3:
console.log('3');
case 4:
console.log('4');
case 5:
console.log('5');
case 6:
console.log('6');
break;
case 7:
console.log('7');
break;
default:
console.log('0');
break;
}
结果如下:
所以为什么会出现这种case穿透效果呢?因为我声明的变量为3,当程序运行到case 3的时候,由于其后面没有break语句,所以会导致程序一直运行到case 6才会停止,这通常和我们所说的switch选择语句不太相符,所以才会被称为case穿透效果。
用switch语句替换if语句
在开发中,多次使用if语句会造成电脑资源浪费,可读性很差,我们应该避免这种书写代码的方式,那我们怎么使用switch语句来替换if语句呢?请往下看👇
我们先写个if语句的小程序(尽量避免这种写法,太糙了🙏)
var num = 10086;
//不只是10086,可能有很多,这只是举例
if (num == 1) {
alert('111');
}
else if (num == 2) {
alert('222');
}
else if (num == 3) {
alert('333');
}
else if (num == 4) {
alert('444');
}
else if (num == 5) {
alert('555');
}
else if (num == 6) {
alert('666');
}
else if (num == 7) {
alert('777');
}
else if (num == 8) {
alert('你还要我怎样');
}
else {
alert('我到底要怎么做你们才能放过我');
}
这种代码一看就知道是新的不能再新的新手,要是拿出去肯定会被别人笑话,而且质量差,可读性差,占用公共资源,下面是用switch语句来替换if语句的代码,请往下看👀
var num = 10086;
switch (num) {
case 1:
alert('111');
break;
case 2:
alert('222');
break;
case 3:
alert('333');
break;
case 4:
alert('444');
break;
case 5:
alert('555');
break;
case 6:
alert('666');
break;
case 7:
alert('777');
break;
case 8:
alert('你还要我怎样');
break;
default:
alert('我到底要怎么做你们才能放过我');
break;
}
怎么样?看起来是不是比上面那个更加舒服,这种代码可读性好,效率也更高,最重要的是它不会像if语句那样一个if语句一个if语句挨个去执行,switch语句只需要匹配到相应的值便可执行,效率是不是比if更高吧? 在开发中,这种代码也是比if更受欢迎,使用更广泛的形式,所以要牢记噢!