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

当默认值未结束时,在switch语句中使用默认值后中断

当默认值未结束时,在switch语句中使用默认值后中断

慕哥6287543 2021-05-06 15:08:52
在w3schools关于switch语句的教程中,它说:如果默认值不是切换块中的最后一种情况,请记住以默认值结尾。但是,该教程还指出:当JavaScript到达break关键字时,它将跳出switch块。因此,如果您在switch语句的开头具有带有break的默认值,为什么不总是执行默认值并且解释器立即退出该块呢?解释器没有按顺序读取switch语句中的项目?
查看完整描述

3 回答

?
蝴蝶刀刀

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

如本教程所述

default关键字指定的代码运行,如果没有case匹配

default关键字的位置无关紧要,在案例中执行代码之前,将先测试关键字之后的default案例。如果这些情形之一的匹配,它的代码会被执行,所以breakdefault块将不被执行。

之后的代码default,如果没有一个明确的情况下匹配,或者以前的情况下,才能执行default选择并没有有breakdefault(所以漏网)。

default:案例通常是按照惯例写在最后,因此break通常不需要在此处。本教程中的警告只是提醒您,如果您放default:早一些,则break适用于在没有任何情况的情况下继续进行下一种情况的规则;没有什么特别的default规则可以阻止它。


查看完整回答
反对 回复 2021-05-27
?
杨魅力

TA贡献1811条经验 获得超6个赞

这在ECMA-262,13.12.9运行时语义:CaseBlockEvaluation(这是JavaScript的定义)中进行了指定。

不幸的是,该规范有点难以理解,但可以归结为以下几点:要执行switch语句,请尝试case之前的子句default(如果有);然后尝试case后面的子句default(如果有);并且只有当它们都不匹配时,才执行该default零件。的位置无关紧要default


查看完整回答
反对 回复 2021-05-27
  • 3 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

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