<script language="javascript">
<!--
function sumall(){
var argslength=sumall.arguments.length;
var sum=0;
for(var i=0;i<argslength;i++)
sum+=sumall.argumments[i];
}
document.write("sum is "+sum+"<br>");
}
sumall(1,2,3);
sumall(2,800);
-->
</scrit>得出的结果是:
sum is 6
sum is 802主要问题来了`
当我想输出时显示如下:
sum is 6
this is 802该怎么修改语句的呢?
基础还未过关~
这么简单都不会`
所以还要学习的`
<!--
function sumall(){
var argslength=sumall.arguments.length;
var sum=0;
for(var i=0;i<argslength;i++)
sum+=sumall.argumments[i];
}
document.write("sum is "+sum+"<br>");
}
sumall(1,2,3);
sumall(2,800);
-->
</scrit>得出的结果是:
sum is 6
sum is 802主要问题来了`
当我想输出时显示如下:
sum is 6
this is 802该怎么修改语句的呢?
基础还未过关~
这么简单都不会`
所以还要学习的`
<html>
</head>
<body>
<script language="javascript">
<!--
function sumall(){
var argslength = sumall.arguments.length-1;
var sum = 0;
for(var i=0;i<argslength;i++) sum += sumall.arguments[i];
document.write(sumall.arguments[argslength] + sum + "<br>");
}
sumall(1,2,3,"sum is ");
sumall(2,800,"this is ");
-->
</script></body>
</html>
想不到这么快就有人回复正确答案了``可是`
有些地方理解不到的~`
如:var argslength = sumall.arguments.length-1;
//定义一个变量,并将函数的个数赋值给变量,可是,为什么要arguments.length是个减1的呢?个数减去1有什么作用?
当我改为如:var argslength = sumall.arguments.length+3时,
结果:
undefined6sum is undefinedundefinedundefined
undefined802this is undefinedundefinedundefined
当在长度后加一个数目时,就出现一个未知数的,不加数目时,就不出现undefined;还有在undefined6在那里决定此数在前面出现的?
当我改为如:var argslength = sumall.arguments.length-2
结果;
6
802
代码是怎么计算的啊?
还有代码:
sumall(1,2,3,"sum is ");
sumall(2,800,"this is ");
这里又想不明的`
为什么值放置在前面,而字符串在后面的呢?
它们是为那里准备的哦?
我修改为:
sumall("sum is ",1,2,3);
sumall("this is ",2,800);
结果出错,得到:
30sum is 12
8000this is 2
怎么会这样的啊?>
最后要精通它们之前的属性或者方法`
要加强学习那里的呢?
function sumall(){
var argslength = sumall.arguments.length-1;
var sum = 0;
for(var i=1;i<=argslength;i++) sum += sumall.arguments[i];
document.write(sumall.arguments[0] + sum + "<br>");
}
sumall("sum is ",1,2,3);
sumall("this is ",2,800); 比较一下代码就清楚了
这个比较明了的喔`一楼的代码终于看明白了`
写下理解过程啦``
原码;
function sumall(){
var argslength = sumall.arguments.length-1;
var sum = 0;
for(var i=0;i<argslength;i++) sum += sumall.arguments[i];
document.write(sumall.arguments[argslength] + sum + "<br>");
}
sumall(1,2,3,"sum is ");
sumall(2,800,"this is ");理解过程:
var argslength=sumall.arguments.length-1;//即是长度减去1,得到长度为3;
for(var i=0;i<3;i++)
sum=sum+sumall.arguments[i]
i=0时,sum=sum+sumall.arguments[0]
=0+1
=1
i=1时,sum=sum+sumall.arguments[1]
=1+2
=3
i=2时,sum=sum+sumall.arguments[2]
=3+3
=6
至此,sum=6最后输出语句了
原码:
document.write(sumall.arguments[argslength] + sum + "<br>");
理解过程:
document.write(sumall.arguments[3]+sum+"<br>");
即是sumall.arguments[3]赋值于sum is,
所以document.write("sum is"+6)
得到的结果就是sum is 6希望我的理解能帮助到几个人啦``
嘻嘻~~
sumall("字符串",2,800);
输出的是:
10
字符串802
难道说,减一只是减去字符串的吗?数字并不会减啊?sumall(1,2,3,9);
sumall(2,800,"字符串");
输出的是;
15
字符串802
再说说明,当函数中不有字符串时,其值全部是相加的?含有字符串时,并不是全部相加的?这个结论对吗?