不会用开发者工具检测bug,求看以下代码哪里错了?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>1-11作业</title>
</head>
<body>
<script>
function getDate() {
var y=prompt("请输入您的出生年份"),
m=prompt("请输入您的出生月份"),
d=prompt("请输入您的出生日期");
return y,m,d;
}
function day(y,m,d) {
var sum=0,x;
for(var i=1;i<m;i++){
if (y%4==0) {
if(i==2){
x=29;
}else{
if(i%2=1){
x=31;
}else{
x=30;
}
}
}else{
if (i==2) {
x=28;
}else{
if (i%2==1) {
x=31;
}else{
x==30;
}
}
}
return sum=sum+i*x+d;
}
getDate();
day();
document.write("您的生日在"+y+"年是第"+sum+"天");
}
</script>
</body>
</html>
正在回答
一、测试在运行的浏览器,按f12, 控制台console。
二、关于代码,有以下几个问题:
1. 在getDate() 中 return y,m,d; ,谁来接受这些值;
2. 第27行,if(i%2=1) 判断正确写法应该是 if(i%2==1)
3. 在 day(y,m,d)函数内,调用getDate();和day(); , 所以不起作用。
4. return sum=sum+i*x+d; 是在for 循环里,没循环一次执行一次,试想,当i=2 时,sum应该是加上29或者28 , 而不是加上 i*x 。先把输入月份前的月的天数加上,最后加上输入天数。
5. 第44行的return 把值返回去了。怎么还会执行函数,所以要返回,也是整个函数体内的内容执行完后,还执行return。
三、综合上面的问题,建以思路:
1. 在getDate()函数中调用day(y,m,d),这样直接把y,m,d的值就传给day()函数了。
2. 在 day(y,m,d)函数内,先判断是否为闰年,闰年判断条件:需满足下列条件之一(年份能整除4但是不能整除100或年份能整除400)。
3. 是闰年,2月29天,将输入月前的所有月的天数加起来,最后加如何天数。(当然还要考虑,30和31的月份)
4. 不是闰年,2月28天,将输入月前的所有月的天数加起来,最后加如何天数。(当然还要考虑,30和31的月份)
5. 最后将 结果return出去。并输出。
6. 还要记住,因为都是函数,所以在外面要运行下函数,要不不起作用。
希望对你有帮助,祝学习愉快,欢迎采纳。
- 参与学习 1887 人
- 提交作业 4643 份
- 解答问题 5760 个
有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星