我正在尝试编写一个计算已经过了多少天的函数,并根据值更新变量并提醒该字符串。
我一直在"未定义"。我的switch语句是否正确?
var d = new Date();
var o = new Date(2015, 12, 7);
var todayDate = d.getDate();
var startDate = o.getDate();
var twelveDays = todayDate - startDate;
switch (twelveDays) {
case "0":
var calories = '10';
break;
case "1":
var calories = '20';
break;
case "2":
var calories = '30';
break;
case "3":
var calories = '40';
break;
case "4":
var calories = '50';
break;
case "5":
var calories = '60';
break;
case "6":
var calories = '70';
break;
case "7":
var calories = '80';
break;
case "8":
var calories = '90';
break;
case "9":
var calories = '100';
break;
case "10":
var calories = '110';
break;
case "11":
var calories = '120';
break;
case "12":
var calories = '130';
break;
}
alert(calories);

答案 0 :(得分:3)
twelveDays
是一个整数。在switch语句中,您正在检查字符串。没有默认子句,因此会抛出错误undefined
。
像这样改变:
switch (twelveDays) {
case 0:
var calories = '10';
break;
case 1:
var calories = '20';
break;
case 2:
var calories = '30';
break;
}
此外,最好添加一个默认子句以防万一
答案 1 :(得分:0)
我刚刚更新了你的jsfiddle。 http://jsfiddle.net/x28a1Lhc/2/
使用switch
时,添加默认案例是件好事。
var twelveDays = todayDate - startDate;
返回整数。
您需要在switch中匹配整数。