为什么定义了len=arguments.length,就显示不出来?

来源:1-19 编程练习

weibo_纷纷的想念_0

2017-03-06 18:31:22

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>arguments</title>
</head>
<body>
    <script>
        var sum=0,var len=arguments.length,i;
        function getavg(){
          for(i=0;i<len;i++){  sum+=arguments[i];}
             var avg=sum/len;
             var num=parseInt(avg);
             return num;
        }
    
        document.write(getavg(45,525.621,62));
    </script>
</body>
</html>

为什么定义了len=arguments.length,就显示不出来?

但是我直接用arguments.length就可以正常显示,如下就可以

    var sum=0,i;
        function getavg(){
          for(i=0;i<arguments.length;i++){  sum+=arguments[i];}
             var avg=sum/arguments.length;
             var num=parseInt(avg);
             return num;


写回答

3回答

东方既白233

2017-03-06

   var sum=0,var len=arguments.length,i;



你要么就var sum=0,len=arguments.length,i;

或者var sum=0;

var len=arguments.length,i;

至于下面为什么可以,因为你的arguments.length没有定义就直接用了,默认就是全局变量

0
heibo_纷纷的想念_0
h 可是 刚刚试了一下 还是不行 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>arguments</title> </head> <body> <script> var sum=0,len=arguments.length,i; function getavg(){ for(i=0;i<len;i++){ sum+=arguments[i];} var avg=sum/len; var num=parseInt(avg); return num; } document.write(getavg(45,525.621,62)); </script> </body> </html>
h017-03-07
共2条回复

Hbrsql

2017-03-07

个人理解,供参考:

var len=arguments.length; 

//写在函数外面,即取得是window(全局变量)环境中的arguments,

//而window没有这个属性,就报错. arguments是函数的属性,应该写在函数里.

0
heibo_纷纷的想念_0
h 你这样说有点道理 我这样试了一下是可以得 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>arguments</title> </head> <body> <script> var sum=0,i; function getavg(){ for(var t=arguments.length,i=0;i<t;i++){ sum+=arguments[i];} var avg=sum/t; var num=parseInt(avg); return num; } document.write(getavg(45,525.621,62)); </script> </body> </html>
h017-03-07
共1条回复

东方既白233

2017-03-07

arguments 你这个应该是数组吧,但是你的代码不完整,你这个arguments究竟有没有去取呢?你前面有没有取呢,没取的话是不能直接用的

0

0 学习 · 5760 问题

查看课程