练习要求:
使用输入框 prompt 接收一个输入的年份和月份和日期
判断输入的这一天 是这一年的第几天 将结果打印到控制台
2021年 5月 17日 是2021年的第137天
2020年 3月 6日 是2020年第66天
大月份 1 3 5 7 8 10 12
小月份 4 6 9 11
利用switch穿透
var year = parseInt(prompt('请输入一个年份')),
month = parseInt(prompt('请输入一个月份')),
day = parseInt(prompt('请输入一个日期')),
sum = 0;
switch (month) {
case 12:
sum += 30;
case 11:
sum += 31;
case 10:
sum += 30;
case 9:
sum += 31;
case 8:
sum += 31;
case 7:
sum += 30;
case 6:
sum += 31;
case 5:
sum += 30;
case 4:
sum += 31;
case 3: //二月要判断闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
sum += 29;
} else {
sum += 28;
}
case 2:
sum += 31;
case 1:
sum += day;
console.log('今天是一年的第',sum,'天');
}
这里有个问题,在练习的时候困扰我很久。
问题描述:在编写代码的时候,控制台一直不输出数据,无论我怎么修改代码的内容,代码本身也不报错。
问题所在:在用prompt()这个函数,没有用perseInt()做强制转换。
为什么需要强制转换? prompt()函数保存的是用户输入的字符串,无论输入数字还是字母,都会被解释成字符串。所以当我们要将prompt()函数中的值当做数字来使用,必须强制转换成数值,否则js会自动解释代码,可能会出现误判。