为何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 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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