You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于JavaScript switch语句执行逻辑的疑问求助

关于JavaScript Switch语句执行逻辑的解释

核心原理

JavaScript的switch语句并非“匹配到对应case就仅执行该分支”,而是找到第一个与switch表达式匹配的case后,从该位置开始顺序执行所有后续代码,直到遇到break语句或者整个switch代码块结束——这就是常说的switch“贯穿(fall-through)”行为。

针对你的代码逐行分析

你的代码中switch(true)会寻找第一个case表达式结果为true的分支:

  • 前两个case false都不匹配,直接跳过;
  • 第三个case true匹配成功,执行console.log("Unconditional"),但这个case末尾没有break,程序不会跳出switch,而是继续执行下一个case的代码;
  • 第四个case false不管表达式是否匹配,程序都会直接执行里面的console.log("4"),直到遇到这个case里的break,才终止switch的执行;
  • 因为已经通过break跳出了switch块,所以后面的case false: console.log("5")和default分支都不会被触发。

移除所有break时default执行的原因

如果把所有break都去掉,程序会从匹配的case true开始,一直顺序执行完所有后续case分支,直到switch块的最后,自然就会执行default分支的代码。

内容的提问来源于stack exchange,提问作者user3311045

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 18:45:31