gpt4 book ai didi

javascript - 在 JavaScript 中跳出 if block 的正确方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:56:33 25 4
gpt4 key购买 nike

在如下的 if block 结构中,假设 condition_1 和 condition_2 互斥,但有时 condition_2 和后面的条件都为真;并且,当 condition_2 为真时,所需要做的就是跳出 if block 并继续执行其余代码,类似于 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.

如果只在第一个 block 中编写代码并且不在 condition_2 的大括号之间放置任何代码,那么当 condition_2 为真时,没有要执行的代码但不测试其他条件是否是一种“糟糕”的编程实践它会获取 if block 末尾的代码吗?

是否有更好、更专业的方法来完成同样的任务?

我读到有关在 if 语句上放置一个 label 然后使用 break label 的内容,但我没有看到添加了什么;并且有人提到编译器/解释器可能无法有效地使用该方法。

谢谢。

最佳答案

你可以拿一个labeled statement并打破 block statement{} ,如果条件为 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();

关于javascript - 在 JavaScript 中跳出 if block 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56592632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com