一些小问题

来源: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回答

山河远阔ZZ

2018-12-24

同学你好,经过测试,输入闰年之后,算出的天数是错误的。

1、代码中闰年的判断有问题:

http://img.mukewang.com/climg/5c204bbe000171f705520155.jpg

判断闰年应该满足的条件:能够被四整除并且不能被100整除或者是能够被400整除。

参考下图修改代码:

http://img.mukewang.com/climg/5c204c1e0001d32805850139.jpg

2、函数里有一个数组arguments就是专门存储实参数组的,通过arguments我们就可以知道实参个数以及值,arguments[i]相当于是数组中的某个值。

3、arguments[1]+=1相当于arguments[1] =arguments[1]+1,意思就是数组中的第二个值+1之后在重新赋给arguments[1],而arguments[1]+1没有再进行赋值,所以arguments一直都是原来的值。

4、代码中使用的是return返回,所以在外面需要一个变量接收返回值,最后是可以直接调用a()函数的,直接在函数里面输出结果即可,参考下图:

http://img.mukewang.com/climg/5c2069a80001d04306600227.jpg

自己试一试,祝学习愉快,望采纳!

0

0 学习 · 36712 问题

查看课程