eslint/default-case-last 样式
其作用
强制在 switch 语句中将默认子句放在最后
为何该模式不好?
switch 语句可以选择带有默认子句。如果存在默认子句,它通常是最后一个子句,但它不是必须的。它还可以放在所有 case 子句之前或任意位置。其行为与作为最后一个子句时基本相同。只有在 case 子句(包括在默认子句之后定义的子句)中没有匹配时,才会执行默认代码块,但也可以从默认子句“向下执行”至列表中的后续子句。然而,这种流程并不常见,对于阅读者来说可能会引起困惑。即使没有“向下执行”逻辑,在 case 子句之前或其间看到默认子句仍然令人意外。根据惯例,它应该作为最后一个子句。如果 switch 语句应该有一个默认子句,将它定义为最后一个子句被认为是一种最佳实践。
示例
javascript
switch (foo) {
default:
bar();
break;
case "a":
baz();
break;
}
switch (foo) {
case 1:
bar();
break;
default:
baz();
break;
case 2:
qux();
break;
}