老师帮忙看看,为啥结果是Nan

老师帮忙看看,为啥结果是Nan

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>arguments</title>
</head>
<body>
    <script>
//补充代码
function myFun(){
for(var i=0;i<arguments.length;i++){

var sum=sum+arguments[i];
}
return sum/i;

}

var jun = myFun(1,2,3,4,5)
console.log(jun)
</script>
</body>
</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕夭夭 2019-01-03 18:03:53

你好同学 , 代码中传入5个参数 , 因为i是从0开始的 ,所以最后一个参数索引为4 , 但是由于参数的长度为5 ,所以当遍历到索引为5的元素时 , 已经不存在参数了 , 为undefined , 与undefined计算的话 , 结果就为NaN .

如下修改:

http://img1.sycdn.imooc.com//climg/5c2dde010001362507270162.jpg

祝学习愉快 ,望采纳 .

  • 提问者 百万何必当真 #1
    最后一个索引为4,length为5,情况是i<5,所以i最大等于4,但是我现在把sum定义到外边又正常了。。。
    2019-01-03 19:09:37
  • 你好同学 , 老师测试了一下 ,确实是可以的 , 不用减去1 .这里由于老师的疏忽 , 给同学带来不好的体验 , 以后老师会更加仔细的帮各位同学测试 , 请同学谅解 .
    2019-01-04 09:51:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师