一些小问题
来源:1-20 作业题
qq_命运_szFJMV
2018-12-23 22:42:32
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var yer=parseInt(prompt("请输入您的出生年份")),
month=parseInt(prompt("请输入您的出生月份")),
day=parseInt(prompt("请输入您的出生日期")),
sum=0
function a(){
if(yer%4==0){
arguments[1]+=1
}
for (var i = 0; i <month-1; i++) {
sum+=arguments[i]
}
b=sum+day
return b;
}
var b=a(31,28,31,30,31,30,31,31,30,31,30,31);
alert("您的生日是"+yer+"年是第"+b+"天");
</script>
</body>
</html>
我是参考了其他同学的作业写的有几点不是很理解
i一定要加arguments才能调用设定的值吗?它的原理是什么呢?
然后arguments[1]+=1这样写才实现了效果写arguments[1]+1效果却没能实现这是为什么?
还有个问题为什么最后一定要设变量=a调用函数不能直接调用a呢?
1回答
同学你好,经过测试,输入闰年之后,算出的天数是错误的。
1、代码中闰年的判断有问题:
判断闰年应该满足的条件:能够被四整除并且不能被100整除或者是能够被400整除。
参考下图修改代码:
2、函数里有一个数组arguments就是专门存储实参数组的,通过arguments我们就可以知道实参个数以及值,arguments[i]相当于是数组中的某个值。
3、arguments[1]+=1相当于arguments[1] =arguments[1]+1,意思就是数组中的第二个值+1之后在重新赋给arguments[1],而arguments[1]+1没有再进行赋值,所以arguments一直都是原来的值。
4、代码中使用的是return返回,所以在外面需要一个变量接收返回值,最后是可以直接调用a()函数的,直接在函数里面输出结果即可,参考下图:
自己试一试,祝学习愉快,望采纳!
相似问题