在JavaScript中,switch
语句通常用于基于某个表达式的不同值执行不同的代码块。每个case
后面通常跟着一个break
语句,用于终止switch
语句的执行。如果没有break
语句,控制流程可能会继续到下一个case
,即使条件不匹配,这被称为滑动case或者case穿透。
使用break
时的switch
语句:
let value = 2;
switch (value) {
case 1:
console.log("Value is 1");
break;
case 2:
console.log("Value is 2");
break;
case 3:
console.log("Value is 3");
break;
default:
console.log("Value is not 1, 2, or 3");
}
在上面的代码中,当value
为2时,会执行case 2
并在那里遇到break
语句,因此不会继续执行case 3
。
如果移除break
语句,代码将变成:
let value = 2;
switch (value) {
case 1:
console.log("Value is 1");
break;
case 2:
console.log("Value is 2");
// break; (break语句被移除)
case 3:
console.log("Value is 3");
break;
default:
console.log("Value is not 1, 2, or 3");
}
在这种情况下,当value
为2时,case 2
和case 3
下的代码都会执行。这种行为称为case穿透。
总结:
-
使用
break
时,每个case
块都是互斥的,只有当条件匹配时才会执行。 -
移除
break
时,若条件匹配,则会执行该case
块及其后所有case
块的代码,直到遇到break
或者switch
结束。这种行为称为case穿透或滑动case。