剩余参数运算符、展开运算符

…剩余参数运算符

为了接收所有参数

普通函数可以通过arguments获取全部参数,箭头函数没有arguments

用于函数形参,必须放在形参最后一个!

  • 一般配合箭头函数, 因为箭头函数内不能用arguments
  • 必须出现在形参的最后面
function youSum (a, ...args) {
  console.log(a, args)
}
youSum(5, 10) //5 [10]
youSum(5, 100, 200, 300) //5 [100,200,300]
youSum(5, 100, 200, 300, 400) //5 [100,200,300,400]

let mySum = (...args) => {
  console.log(args)
}
mySum(10, 20, 30, 40) //[10, 20, 30, 40]

…展开运算符

用于数组[]或对象{}中, 可以将数组的项或对象的键值对展开

展开数组

let arr = [1, 3, 5, 7]
console.log(...arr) // 打印数组的每一项 1,3,5,7
拼接两个数组
let arr1 = [1, 2, 3]
let arr2 = [4, 5, 6]
let newArr = [...arr1, ...arr2]
求数组最大值
let arr = [3, 100, 20]
let max = Math.max(...arr3)

展开对象

let obj1 = {
  name: 'Liao',
  age: 18,
}
let obj2 = {
  money: 10000000000,
  car: "没有"
}
// 相当于快速浅拷贝
let obj3 = {
  ...obj1,
  ...obj2,
  name: 'liao'
}
//obj3 === {name: 'Liao',age: 18,money: 10000000000,car: "没有",name: 'liao'}
//obj3的name属性放到...obj2前面,name属性则会被覆盖

已发布

分类

来自

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注