Javascript 什么是正确/清洁开关(或一般功能)控制流程?
我在switch语句中偶然发现了一个bug(两种情况),其中两种情况都运行,因为前者使后者成为真。我找到了两种解决方案,但我不知道应该使用哪一种,或者是否应该将两者结合起来 我最初的想法只是在每一个案例的结尾加上中断。但我的同事建议我交换订单,因为后者不能以这种方式干扰前者。也许我应该两者都做?我认为换行看起来更清晰,但换行是优雅的您希望从您的同事那里看到什么?Javascript 什么是正确/清洁开关(或一般功能)控制流程?,javascript,switch-statement,Javascript,Switch Statement,我在switch语句中偶然发现了一个bug(两种情况),其中两种情况都运行,因为前者使后者成为真。我找到了两种解决方案,但我不知道应该使用哪一种,或者是否应该将两者结合起来 我最初的想法只是在每一个案例的结尾加上中断。但我的同事建议我交换订单,因为后者不能以这种方式干扰前者。也许我应该两者都做?我认为换行看起来更清晰,但换行是优雅的您希望从您的同事那里看到什么? **---OPTION 1---** var created = false; function clicker(){ swi
**---OPTION 1---**
var created = false;
function clicker(){
switch(created){
case false:
**some code**
created = true;
break;
case true:
**some code**
break;
}
}
**---OPTION 2---**
var created = false;
function clicker(){
switch(created){
case true:
**some code**
case false:
**some code**
created = true;
}
}
最初,我运行选项1,但没有中断。Case“false”将运行,使Case“true”=true,然后Case“true”将运行
这两个选项都可以修复它。哪个更好?您有更好的解决方案吗?只要使用
if
语句:
**---OPTION 1---**
var created = false;
function clicker(){
switch(created){
case false:
**some code**
created = true;
break;
case true:
**some code**
break;
}
}
**---OPTION 2---**
var created = false;
function clicker(){
switch(created){
case true:
**some code**
case false:
**some code**
created = true;
}
}
function clicker() {
if (created) {
//Some code
} else {
//Some code
created = true;
}
}
我不喜欢这两种情况,
开关
丑陋、冗长且容易出错。请改用if
/else
语句,或者可能使用对象if(created){handleCreated();}else{handleNotCreated();}
您可以返回代码>在函数内的开关中,而不是中断代码>。似乎其他评论都同意。谢谢你的帮助:)