动态参数
arguments 是函数内部内置的伪数组变量,它包含了调用函数时传入的所有实参
function getSum() {
// arguments 动态参数 只存在于 函数里面
// 是伪数组 里面存储的是传递过来的实参
// console.log(arguments) [2,3,4]
let sum = 0
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i]
}
console.log(sum)
}
getSum(2, 3, 4)
getSum(1, 2, 3, 4, 2, 2, 3, 4)
总结:
- arguments 是一个伪数组,只存在于函数中
- arguments 的作用是动态获取函数的实参
- 可以通过for循环依次得到传递过来的实参
剩余参数
剩余参数允许我们将一个不定数量的参数表示为一个数组
function getSum (a, b, ...arr) {
console.log(a) // 1
console.log(b) // 2
console.log(arr) // [3, 4, 5] 使用的时候不需要写 ...
}
getSum(1, 2, 3, 4, 5)
- 和arguments区别:
...是语法符号,置于最末函数形参之前,用于获取多余的实参- 借助
...获取剩余实参,是个真数组
- 开发中,提倡多使用剩余数组
...展开运算符
...将一个数组进行展开
const arr1 = [1, 2, 3]
console.log(...arr) // 1 2 3
不会修改原数组
典型运用场景:求数组最大最小值、合并数组
const arr1 = [1, 2, 3]
// ...arr1 === 1,2,3
// 1 求数组最大值
console.log(Math.max(...arr1)) // 3
console.log(Math.min(...arr1)) // 1
// 2. 合并数组
const arr2 = [3, 4, 5]
const arr = [...arr1, ...arr2]
console.log(arr) // [1, 2, 3, 3, 4, 5]