Switch语句运行输出结果不正确,请问有什么解决建议?
问题原因
- 核心错误为变量类型不匹配:从输入框
value属性获取的数值默认是字符串类型,Switch语句采用严格相等规则做分支匹配,字符串格式的"1"与数字类型的case 1无法匹配,所有1-5的输入都会触发默认分支。 - 代码中的
parseFloat(number)未将转换结果赋值回number变量,类型转换操作未实际生效。
修复代码
修改changeText函数中类型转换逻辑即可:
function changeText() { var firstName = document.getElementById("fNameBox").value; var number = document.getElementById("numberBox").value; var result; // 将转换后的数字重新赋值给number变量 number = parseFloat(number); switch (number) { case 1: result = "one"; break; case 2: result = "two"; break; case 3: result = "three"; break; case 4: result = "four"; break; case 5: result = "five"; break; default: result = "is not a valid number"; } document.getElementById("message").innerHTML = (firstName + ", " + number + " is written " + result); } function clearText() { document.getElementById("message").innerHTML = ("<br>"); document.getElementById("fNameBox").value = ""; document.getElementById("numberBox").value = ""; }
内容的提问来源于stack exchange,提问作者Spraggins Designs
相关产品推荐
相关产品推荐

