在JavaScript中突破if块的正确方法?

在JavaScript中突破if块的正确方法?,javascript,if-statement,break,Javascript,If Statement,Break,在if块结构中,例如下面,假设条件_1和条件_2相互排斥,但有时条件_2和以后的条件都可以为真;并且,当条件_2为真时,所需要的只是中断if块并继续执行其余代码,类似于switch语句 除条件_2外,所有条件都是父容器上具有多个按钮的侦听器的匹配语句。当条件_2为真时,应禁用其下方的按钮 if ( condition_1 ) { } else if ( condition_2 ) { } else if ( condition_3 ) { } else if ( condition_4 )

在if块结构中,例如下面,假设条件_1和条件_2相互排斥,但有时条件_2和以后的条件都可以为真;并且,当条件_2为真时,所需要的只是中断if块并继续执行其余代码,类似于switch语句

除条件_2外,所有条件都是父容器上具有多个按钮的侦听器的
匹配
语句。当条件_2为真时,应禁用其下方的按钮

if ( condition_1 ) { }
else if ( condition_2 ) {  }
else if ( condition_3 ) {  }
else if ( condition_4 ) {  }
// ...
else if ( condition_n ) {  };   
// More code in the function before returning.
可将其编码为:

if ( condition_1 ) { }
else if ( !condition_2 && condition_3 ) {  }
else if ( !condition_2 && condition_4 ) {  }
// ...
else if ( !condition_2 && condition_n ) {  };   
// More code in the function before returning.

如果只编写第一个块中的代码,而不在条件_2的大括号之间放置任何代码,这样当条件_2为真时,就没有代码可执行,但其他条件没有测试,它会在if块末尾与代码一起拾取,这会是一种“糟糕”的编程实践吗

有没有更好更专业的方法来实现同样的目标

我读过关于在if语句上添加一个
标签
,然后使用
断开标签
,但我不知道这会增加什么;有人提到,编译器/解释器可能无法有效地使用该方法

谢谢。

如果条件为<代码>真,您可以采取行动并中断

var a=2;
区块:{
如果(a==1){
控制台日志(1);
断块;
}
如果(a==2){
控制台日志(2);
断块;
}
如果(a==3){
控制台日志(3);
断块;
}
console.log(“块结束”);

}
我个人更喜欢最后一种样式,因为意图很明确,尽管我认为将第一种方法与空块一起使用没有坏处。方法2非常详细,性能受到了影响,因为条件2正在被不必要地重新评估,我不建议这样做。谢谢您的评论。对于浏览器来说,空块似乎是最简单、最容易的,但是对于阅读代码的其他人来说,它并不清楚。只需添加一条注释,说明为什么要使用空块或语句。感谢您的回复。我曾想过使用这个功能,但我认为浏览器需要做更多的工作。我从来没有想过块方法。我认为对于浏览器来说,if、else if.的工作并不比if、else if.的工作多。。
if ( condition_1 ) { }
else if ( !condition_2 )
  {
    if ( condition_3 ) {  }
    else if ( condition_4 ) {  }
    // ...
    else if ( condition_n ) {  };   
  };
// More code in the function before returning.