函数参数

96 阅读1分钟

动态参数

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)

总结:

  1. arguments 是一个伪数组,只存在于函数中
  2. arguments 的作用是动态获取函数的实参
  3. 可以通过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]