Javascript 当默认值不在末尾时,在switch语句中使用break after default
在W3ON开关语句中,它表示: 如果默认值不是开关块中的最后一种情况,请记住结束 带中断的默认情况 但是,正如该教程所述: 当JavaScript到达一个break关键字时,它就会跳出开关 街区 因此,如果在switch语句的开头有一个带break的缺省值,那么为什么不总是执行缺省值并由解释器立即退出该块呢?解释器没有按顺序读取switch语句中的项目?如教程所述Javascript 当默认值不在末尾时,在switch语句中使用break after default,javascript,switch-statement,Javascript,Switch Statement,在W3ON开关语句中,它表示: 如果默认值不是开关块中的最后一种情况,请记住结束 带中断的默认情况 但是,正如该教程所述: 当JavaScript到达一个break关键字时,它就会跳出开关 街区 因此,如果在switch语句的开头有一个带break的缺省值,那么为什么不总是执行缺省值并由解释器立即退出该块呢?解释器没有按顺序读取switch语句中的项目?如教程所述 default关键字指定在没有case匹配时要运行的代码 default关键字的位置无关紧要,在执行default案例中的代码之前,
default
关键字指定在没有case
匹配时要运行的代码
default
关键字的位置无关紧要,在执行default
案例中的代码之前,将测试它之后的案例。如果其中一种情况匹配,将执行其代码,因此将不执行default
块中的break
只有当显式事例不匹配,或者选择了default
之前的事例,并且default
之前没有break
时,才会执行default
之后的编码(因此它失败)
default:
案例通常按照惯例写在最后,因此在那里通常不需要中断。本教程中的警告只是提醒您,如果您在前面输入了默认值:
,则在没有中断时,您继续进入下一个案例的规则仍然适用;默认的规则没有什么特别的地方可以阻止它。这是在中指定的(这是JavaScript的定义)
不幸的是,该规范有点难以理解,但它归结为以下几点:要执行switch语句,请尝试default
之前的case
子句(如果有的话);然后尝试default
后面的case
子句(如果有);只有当它们都不匹配时,才执行default
部分。默认设置的位置无关紧要。您也可以从中阅读:
default
关键字指定在没有大小写匹配时要运行的代码
因此,例如,如果在开头定义,并且存在一个案例
匹配,则将执行与该匹配相关联的代码,而不是与默认块相关联的代码,例如:
功能测试(n)
{
让我们重新来过;
开关(n)
{
违约:
res=“默认”;
打破
案例1:
res=“案例1”;
打破
案例0:
res=“案例2”;
}
返回res;
}
日志(测试(1)、测试(0)、测试(9))代码>
.as控制台{背景色:黑色!重要;颜色:石灰;}
.as console wrapper{max height:100%!important;top:0;}
,因为只有在其他案例都不匹配时才会使用默认值:
案例。