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

为什么switch块内变量在块外无法访问?无switch表达式如何取默认值

JavaScript 语法规范明确要求 switch 关键字后必须跟随带表达式的括号,空括号的写法本身属于语法错误,没有办法直接跳过表达式校验让空参数的switch正常运行。

如果需要保留switch语句结构,同时强制走default分支拿到默认赋值,只需要给switch传入一个和所有case值都不匹配的表达式即可。因为switch的case匹配采用严格相等规则(===),只要传入的表达式结果和所有case的值都不全等,就会自动进入default分支执行。

修改后的可运行代码示例如下:

let x = "0";
let text; // 建议提前声明变量,避免隐式创建全局变量或严格模式下报错

// 传入和所有case(0、1)都不匹配的undefined,强制走default
switch (undefined) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}
document.getElementById("demo").innerHTML = text;

你也可以根据实际的case值替换传入的表达式,比如你现有case都是数字,传入字符串、布尔值等其他类型的值都可以实现强制走default的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:45:00