展开运算符和剩余参数

162 阅读1分钟

展开运算符

📌把 数组 / 对象 外层的字面量去掉,如: {}[] ,去掉字面量的部分,就是展开运算符的结果

1.合并数组

    const arr1 = [1, 2, 3, 6, 5]
    const arr2 = ['a','b','c']
    const arr = [...arr1, ...arr2]
    console.log(arr)

掘金.png

2.拆分对象

      const user1 = {
        name: 'pink',
        age: 18
      }
      const user2 = {
        sex: '男'
      }
      const user = { ...user1, ...user2 }
      console.log(user)

掘金.png

3.字符串转数组

      const str = '键盘敲烂,工资过万'
      const arr = [...str]
      console.log(arr)

掘金.png

4.浅拷贝对象

      const oldUser = {
        uname: 'pink',
        age: 18
      }
      // 浅拷贝
      const newUser = { ...oldUser }
      console.log(newUser)
      console.log(oldUser)
      console.log(oldUser === newUser)

掘金.png

剩余参数

📌抛去已知的形参,获取未知的形参,结果以逗号分割

使用场景: 当函数的形参是动态的时候,无法判断出形参的个数,就可以使用剩余参数,从而拿到完整的参数

      function fn(num1, num2, ...nums) {
        console.log(...nums)
      }
      fn(1, 2, 3, 5, 6, 9)

掘金.png

展开运算符和剩余参数的区别

  • 分隔字符相同:

    • 结果都是以,分隔
  • 应用位置不同:

    • 函数形参括号内的...--> 剩余参数
    • 函数形参括号外的...--> 展开运算符
  • 获取的结果不同:

    • 剩余参数获取的是剩余的形参

    • 展开运算符获取的是所有值