为何I<len变为I<=len结果就变味NAN?

为何I<len变为I<=len结果就变味NAN?

function arg(){

             var sum=0;

             var len=arguments.length;

            for(var i=0;i<len;i++){

                sum=sum+arguments[i];

            }

             return sum/len;

        }

      var avg=arg(1,2,3,4,5,6,7,8);

        document.write(avg);


正在回答

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

1回答

你好,arguments 是类数组,可以用它来表示传进来的参数。代码分析:

function arg(){
             var sum=0;
             var len=arguments.length; //长度 为8 
            for(var i=0;i<len;i++){
                sum=sum+arguments[i]; // 数组的下标表示是从 0开始 ,所以应该是 arguments[0] ....... arguments[7] 代表 8个参数。
            }
             return sum/len;
        }
      var avg=arg(1,2,3,4,5,6,7,8);  // arg 传进 8个 参数

注意:当为 i<= len 时, 会有 arguments[8] 这个,可以没有这个参数, 在经过计算,所以结果是NaN。

希望对你有帮助,祝学习愉快。如解决你的疑惑,请采纳呦。

  • 舒扬 提问者 #1
    为何不是und,而是nan?
    2017-05-16 16:56:55
  • 小于飞飞 回复 提问者 舒扬 #2
    注意,最后一个值是undefined , 但是和前面的数值进行相加,数值+undefined 首先将 undefined 转换成数值,但是转不成功所以是NaN , 最后结果就是NaN。希望对你有帮助,祝学习愉快。如解决你的疑惑,欢迎采纳呦。
    2017-05-16 18:01:52
  • 舒扬 提问者 #3
    非常感谢!
    2017-05-17 09:20:12
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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