js中的形参、实参
function sum(a,b,c,d,e) {
console.log(arguments)
var sum=0;
for (var i = 0; i < arguments.length;i++){
console.log(arguments[i])
sum =sum+ arguments[i];
}
return parseInt(sum);
}
var sum = sum(1, 2, 3);
console.log(sum);
分析:js中形参个数与实参个数可以不匹配
形参个数大于实参个数的话,没有对应实参的形参会被赋值为undefined
形参个数小于实参个数的话,额外的实参不会赋值给任何形参
上面例子中,函数调用的时候,实参个数为3,形参个数为5,d、e没有被赋值,如果在不知道传入几个实参的时候,我想做累加,我们可以通过arguments获取传入实参的长度以及值,
arguments.length属性可以获取传递给函数的实际参数个数
arguments并不是数组哦,不可以使用数组的原型方法,arguments只是类数组的结构。
function sum() {
console.log(arguments)
var sum=0;
for (var i = 0; i < arguments.length;i++){
console.log(arguments[i])
sum =sum+ arguments[i];
}
return parseInt(sum);
}
var sum = sum(1, 2, 3);
console.log(sum);
同理,上面的例子中,调用函数sum的时候传入了三个实参,但是没有相应的实参去接收传入的实参值,但是我们可以通过arguments找到传入的实参,通过遍历所有参数计算他们的和
注意:在大多数的情况下,我们可以使用剩余参数来代替arguments参数,并且剩余参数是真正的Array实例,可以使用所有数组的方法
function sum(...Atg) {
var sum=0;
// console.log(Atg);
for(var i=0;i<Atg.length;i++){
sum=sum+Atg[i];
}
return sum;
}
var sum = sum(1, 2, 3);
console.log(sum);