在交换机中嵌入if/else是有效的JavaScript吗?

Ben*_*Ben 16 javascript

这有效吗?

switch(foo) {
    case 'bar':
    if(raz == 'something') {
        // execute
    } else {
        // do something else
    }
    break;
    ...
    default:
    // yada yada
}
Run Code Online (Sandbox Code Playgroud)

kar*_*m79 20

是的,它完全有效.你试过吗?

  • 尝试一些并使其工作并不一定意味着它是有效的.它可能只是落在裂缝中但不合适的东西.网络世界中的大量事物不是"有效"的标记或代码,但它们以某种方式起作用. (6认同)
  • 在我看来,JavaScript 并不是什么巫术魔法。与案例相关的陈述*可以*是任何东西——我还没有看到反例。 (2认同)

Jef*_*aal 11

如果您真的必须这样做,您可以以更好的方式组合 aswitch和 an if

switch (true) {
    case (foo === 'bar' && raz === 'something'):
        // execute
        break;
    case (foo === 'bar'):
        // do something else
        break;
    default:
        // yada yada
}
Run Code Online (Sandbox Code Playgroud)

很抱歉恢复这样一个旧帖子,但它可能会帮助来这里寻找如何组合或嵌套 aswitchif语句的人。

  • 它*确实*有意义。当在每个 `case` 中使用 `return` 时,你可以跳过 `break;`,它可以是长 `if/else` 语句的一个非常易读的替代品。 (2认同)