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

JavaScript switch语句输出undefined问题求助

问题分析与修复

原代码:

var code = prompt("enter a month number")
var month_name;
switch(code) {
case 1:
month_name = "January"
break;
case 4:
month_name = "April"
break;
case 8:
month_name = "August"
break;
default: "No match"
}
console.log(month_name)

运行后输出undefined的原因有两个:

  1. 类型不匹配:prompt()返回的是字符串,而switch的case用的是数字(1、4、8),字符串和数字不会匹配,所以即使输入1、4、8,也会进入default分支。
  2. default分支未赋值:default里仅写了"No match",没有给month_name赋值,month_name保持初始的undefined状态,最终输出undefined。

修复方案

方案1:将输入转为数字类型

var code = prompt("enter a month number")
var month_name;
// 把输入的字符串转为数字
var numCode = Number(code);
switch(numCode) {
case 1:
month_name = "January";
break;
case 4:
month_name = "April";
break;
case 8:
month_name = "August";
break;
default: 
month_name = "No match"; // 给month_name赋值
}
console.log(month_name)

方案2:case使用字符串匹配

直接把case的数字改为字符串,匹配prompt返回的字符串类型:

var code = prompt("enter a month number")
var month_name;
switch(code) {
case "1":
month_name = "January";
break;
case "4":
month_name = "April";
break;
case "8":
month_name = "August";
break;
default: 
month_name = "No match";
}
console.log(month_name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:35:23