JS - 扩展运算符和rest参数

spread syntax 可以将 iterator 对象(如 array、string 等) 展开,在需要参数(如函数调用)或元素(如数组字面量)的地方。也可以在需要 key-value 的地方将对象表达式展开。
rest parameters 在赋值操作中收集剩余参数。

扩展运算符

代码示例:

Math.max(...[14, 3, 77])

let obj1 = { a:'1', b:'2'};
let obj2 = { c:'3', ...obj1 };      // {c: "3", a: "1", b: "2"}

let arr1 = [1,2,3];
let obj1 = { a: 'a', ...arr1 };    // {0: 1, 1: 2, 2: 3, a: "a"}

let obj2 = { a: 'a', b: 'b'};
let arr2 = [1, 2, 3, ...obj2];      // 报错,这里需要 iterator 对象

rest 参数

代码示例:

function add(...values) {
}
add(2, 5, 3) // 10
const [first, ...rest] = [1, 2, 3, 4, 5];
rest  // [2, 3, 4, 5]
let { a, ...remain } = { a:'a', b:'b', c:'c' };
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容