1.动态参数
2.剩余参数
一、动态参数
arguments是函数内部内置的伪数组变量,它包含了调用函数时传入的所有实参
//求生函数,计算所有参数的和
function sum(){
let s = 0
for(let i = 0;i < arguments.length;i++){
s += arguments[i]
}
console.log(s)
}
//调用求和函数
sum(5,10)//两个参数
sum(1,2,4)//三个参数
总结:
1.arguments是一个伪数组,只存在于函数中
2.arguments的作用是动态获取函数的实参
3.可以通过for循环依次得到传递过来的实参
4.当不确定传递多少个实参的时候,怎么办?
arguments动态参数
二、剩余参数
剩余参数允许我们将一个不定数量的参数表示为一个数组
- …是语法符合,置于最末函数形参之前,用于获取多余的实参
- 借助…获取的剩余实参,是个真数组
function getSum(a,b,...arr){
console.log(a)//1
console.log(b)//23
console.log(arr)//3,1,1
}
getSum(1,23,3,1,1)
开发中,还是提倡多使用剩余参数
3.展开运算符
可以展开数组
const arr = [1,2,3]
console.log(...arr)//1 2 3
使用场景:求数组最大值(最小值)合并数组
const arr = [1,2,3]
console.log(Math.max(...arr))//3
console.log(Math.min(...arr))//1
const arr1 = [3,4,5]
const arr3 = [...arr,...arr1]
console.log(arr3)//[1,2,3,3,4,5]
小结:
1.展开运算符主要的作用是?
可以展开数组,求数组最大值最小值以及合并数组等
2.展开运算符和剩余参数有什么区别?
剩余参数:函数中使用,得到真数组
展开运算符:数组中使用,数组展开
function getSum(...other){
console.log(other)//[1,2,3]
}
getSum(1,2,3)
const arr = [1,5,3,8,2]
console.log(...arr)//1 5 3 8 2