总体
1.问题描述
使用prompt接受用户输入数字,并转为星期数,使用switch进行解决。
但输入成功了,switch并没有触发
(ps:可能有人好奇alert(),alert为弹窗,下面有效果图哦)
var num=prompt("输入数字转为星期");
switch(num){
case 1:
alert("周一");
break;
case 2:
alert("周二")
}
alert(num);
2.原因
1.prompt接收的值为string
2.switch的case 判断是基于===
switch因为在字符串和数字,也要做出区分(适应复杂情况),所以不会自动字符串转为数字
console.log("1"==1);//感兴趣的同学,也可以测试一下
console.log("1"===1);
3.解决方案
1.将字符串转为数字
使用parseInt()函数
var num=prompt("输入数字转为星期");
num=parseInt(num);
switch(num){
case 1:
alert("周一");
break;
case 2:
alert("周二")
}
alert(num);
2.switch的case设置为字符串
var num=prompt("输入数字转为星期");
switch(num){
case "1":
alert("周一");
break;
case "2":
alert("周二")
}
alert(num);
尾声
昨天朋友突然询问才发现的问题(其实是太久没做了),所以给各位初学者避避坑