为了账号安全,请及时绑定邮箱和手机立即绑定

在 JavaScript 中跳出 if 块的正确方法是什么?

在 JavaScript 中跳出 if 块的正确方法是什么?

慕码人8056858 2021-06-29 08:26:12
在 if 块结构中,如下所示,假设 condition_1 和 condition_2 是互斥的,但有时 condition_2 和后面的条件都可以为真;并且,当 condition_2 为真时,所需要做的就是跳出 if 块并继续执行其余代码,类似于 switch 语句。除condition_2 之外的所有条件都是matches针对具有多个按钮的父容器上的侦听器的语句。当 condition_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.或者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.只在第一个块中进行编码并且只在 condition_2 的大括号之间不放置任何代码,这样当 condition_2 为真时,没有代码可以执行,但其他条件没有被测试,它会选择if 块末尾的代码?有没有更好更专业的方法来完成同样的任务?我读过关于label在 if 语句上放置 a然后使用break label,但我没有看到添加了什么;并且有人提到编译器/解释器可能无法有效地使用该方法。
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

如果条件是 ,您可以采用带标签的语句并中断块语句{}true


var a = 2;

block: {

    if (a === 1) {

        console.log(1);

        break block;

    }

    if (a === 2) {

        console.log(2);

        break block;

    }

    if (a === 3) {

        console.log(3);

        break block;

    }

    console.log('end of block');

}

或者在同一个范围内使用另一个嵌套函数并提前返回。


function check () {

    if (a === 1) {

        console.log(1);

        return;

    }

    if (a === 2) {

        console.log(2);

        return;

    }

    if (a === 3) {

        console.log(3);

        return;

    }

    console.log('end of function');

}


var a = 2;

check();


查看完整回答
反对 回复 2021-07-01
  • 1 回答
  • 0 关注
  • 2268 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信