Expected a 'break' statement before 'case'
78 capital = "Washington DC";
79 case "China":
80 capital = "Beijing";
81 case "Panama": 82 capital = "Panama City"; 83 }
84 [country, capital] = [country, capital]; // <- assignment where both sides are exactly the same
85 return capital;
Expected a 'break' statement before 'case'
76 capital = "New Delhi"; // <- no break or fallthrough comment
77 case "USA":
78 capital = "Washington DC";
79 case "China": 80 capital = "Beijing"; 81 case "Panama":
82 capital = "Panama City";
83 }
Description
If the fallthrough is intentional in the code, there is no way to indicate this intent in the language.
It's considered a best practice to always indicate when a fallthrough is intentional using a comment which matches the /falls?\s?through/i
regular expression.
Bad Practice
switch(foo) {
case 1: doSomething();
case 2: doSomethingElse();
}
Recommended
switch(foo) {
case 1:
doSomething();
break;
case 2:
doSomethingElse();
}
function bar(foo) {
switch(foo) {
case 1:
doSomething();
return;
case 2:
doSomething();
}
}
switch(foo) {
case 1:
doSomething();
throw new Error("Boo!");
case 2:
doSomething();
}
switch(foo) {
case 1:
case 2:
doSomething();
}
switch(foo) {
case 1:
doSomething();
// falls through
case 2:
doSomething();
}