Javascript 在交换机中嵌套if/else是否有效?

Javascript 在交换机中嵌套if/else是否有效?,javascript,Javascript,这有效吗 switch(foo) { case 'bar': if(raz == 'something') { // execute } else { // do something else } break; ... default: // yada yada } 对。您试过了吗?如果您确实需要,您可以以更好的方式组合开关和if: switch (true) { case (foo ===

这有效吗

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

对。您试过了吗?

如果您确实需要,您可以以更好的方式组合
开关和
if

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

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

并且您也可以使用
三元if
封装在
return
语句中

   switch(foo) {
        case 'bar':
          return(
            (raz == 'something') ? 
              // excute
            : 
              // do something else
          )
        break;
        ...
        default:
        // yada yada
    }

尝试一些东西并让它工作并不一定意味着它是有效的。它可能只是从裂缝中掉落的东西,但并不合适。在网络世界中,很多东西都不是“有效”的标记或代码,但它们以某种方式发挥作用。我认为,JavaScript并不是一种巫毒魔法。与案例相关的语句可以是任何东西——我还没有看到反例。@karim79&Bertrand Marron——我在以前编写的一些代码中尝试过它。它不起作用,但我想可能是因为别的原因。我把它改成了纯if/else,并做了其他的改变。可能是其他的改变让它开始工作,而不是对if/else的改变。还有,万一(哈哈)有人感兴趣。这没有任何意义。您只需使用if/elseif语句并移除周围的开关盒……这是有意义的。在每个
案例中使用
返回
时,您可以跳过
中断,它可以非常可读地替换长
if/else
语句。如果满足一个条件,if-else语句将自动中断。。。