动态参数
产品需求:写一个求和参数
不管用户传入几个实参,都要把和求出来。
getSum(2,3)
getSum(1,2,3)
getSum(1,2,3,4,5,6)
我们可以用 动态参数 arguments 来实现该需求。
arguments 是函数内部内置的伪数组变量,它包含了调用函数时传入的所有实参。
// 求和函数,计算所有参数的和
function sum(){
// arguments 动态参数 只存在于 函数里面
// 是伪数组
let sum = 0;
for (let index = 0; index < arguments.length; index++) {
sum += arguments[index]
}
console.log(sum)
}
sum(2,3,4) // 9
sum(5,6,7) // 18
总结:
1、arguments 是一个伪数组,只存在于函数中
2、arguments 能够动态获取函数的实参
3、可以通过循环依次获取arguments的值
剩余参数
function getSum(...arr){
console.log(arr)
}
getSum(2,3) // [2,3]
getSum(1,2,3) // [1,2,3]
产品需求:写一个求和参数
不管用户传入几个实参,都要把和求出来。
使用剩余参数实现该需求
// 求和函数,计算所有参数的和
function sum(...arr){
// arguments 动态参数 只存在于 函数里面
// 是伪数组
let sum = 0;
for (let index = 0; index < arr.length; index++) {
sum += arguments[index]
}
console.log(sum)
}
sum(2,3,4) // 9
sum(5,6,7) // 18
剩余参数更加灵活,可以设置固定传入参数,不确定参数使用剩余参数代替。
剩余参数是一个真数组,可以使用数组的push、pop、shift、unshift等方法。
function getSum(a,b,...arr){
console.log(arr)
}
getSum(2,3) // []
getSum(2,3,4) // [4]
getSum(2,3,4,5) // [4,5]
注意:
1、...是语法符号,置于最末函数形参之前,用于获取多余的实参。
2、借助...获取的剩余实参,是一个真数组。
3、开发中建议使用剩余参数。