一.怎么用
const fn = (x, y, ...args) => {//定义剩余参数要加... 使用时不用加... 不一定叫args,满足标识符命名即可; console.log(args);//永远是数组,没有值也是空数组 } fn(1, 2)//[] fn(1, 2, 3)//[3] fn(1, 2, 3, 4)//[3,4]
二.剩余参数就是数组,不像arguments是类数组;
三.箭头函数有剩余参数,如果形参只有一个剩余参数,也不能省略()
四。使用剩余参数替代arguments
const fn = (...args) => { console.log(args); } fn(1, 2, 3, 4)//[1,2,3,4]
五。剩余参数只能是最后一个参数
const fn = (...args,x,y) => {//报错 console.log(args); }
六。剩余元素:在解构赋值中,且必须放在最后面
// const [x, y, ...args] = [1, 2, 3, 4]; // console.log(x, y, args);//1 2 [3,4] //----------------------------------- // const [x, y, ...args] = [1, 2]; // console.log(x, y, args);//1 2 [] //------------------------------------ //const [...args,x, y] = [1, 2];//报错,必须放在最后面 const { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; console.log(z);//{a: 3, b: 4}
七。剩余参数,剩余元素区别
剩余参数要在函数形参里定义,且是作为形参,且这时一定是数组;不像arguments是内置不需要定义;
剩余参数用在解构赋值里,也可以是对象或者数组,此时叫做剩余元素;
剩余参数和剩余元素的书写格式都是使用“…变量名”的方式,不同的是:剩余参数是直接作为函数参数使用的。剩余元素是在解构赋值时,用来接收剩下的元素。
标签:剩余,ES6,const,...,args,参数,fn From: https://www.cnblogs.com/zhoushangquan/p/17039774.html