javascript switch 语句的最佳实践

问题描述 投票:0回答:3

我目前正在使用 switch 语句编写 jquery 脚本,我想知道当几个“案例”共享一些属性时最好的解决方案是什么,假设我有这种模式:

switch (settings.xxx) {
case 'case1':
    Execute some code
    break;
case 'case2':
    Execute some code
    break;
case 'case3':
    Execute some code
    break;
}

对于每种情况,我都有相当多的部分重复的代码,因为某些属性对于这 3 种情况是通用的。所以我的问题是,我可以做同样的事情吗:

switch (settings.xxx) {

case 'case1':
case 'case2':
case 'case3':
    Execute some code
    break;

}

switch (settings.xxx) {

case 'case1':
case 'case2':
    Execute some code
    break;
case 'case2':
case 'case3':
    Execute some code
    break;

}

或者这是一个不好的做法?

javascript switch-statement
3个回答
15
投票

不,这不是坏习惯。事实上,这是一个很好的做法。这样,您就不会重复自己

另外,请查看文档:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/switch


8
投票

最佳实践是避免重复代码。 这样,如果您以后需要修改代码,则无需记住在多个地方进行修改。

如果某些代码只适用于某些情况,可以省略一个break,执行完第一段后就会跳到下一段。 这只适用于特殊情况代码可以在通用情况代码之前执行的情况。 执行此操作时要小心,并添加注释,明确说明您是故意这样做的。 否则,如果稍后编辑代码,其他人可能不会意识到这是故意的,并在缺少的地方添加中断。见下图:

switch (settings.xxx) {
case 'case1':
case 'case2':
    Execute some code that applies to cases 1 & 2
    // break left out to allow execution to fall through
case 'case3':
    Execute some code that applies to cases 1 - 3
    break;
case 'case4':
    Execute different code
    break;
}

0
投票

你也可以这样做...

case 'case1','case2': 相同的工作; 打破;

case 'case3':不同的工作; 打破;

© www.soinside.com 2019 - 2024. All rights reserved.