返回

ES6 扩展运算符与 rest 运算符:彻底剖析

前端

ES6 扩展运算符(...)和 rest 运算符(...)是强大的工具,可显著简化 JavaScript 代码。这两种运算符允许在数组、对象和函数中展开或收集元素。本文将深入探讨它们的语法、用法和实际应用场景,帮助你全面掌握这些有用且多功能的运算符。

扩展运算符(...)

扩展运算符(...)用于将可迭代对象(如数组或字符串)的元素展开为单个元素。它通常用于:

  • 将数组合并:[...arr1, ...arr2]
  • 将对象合并:{...obj1, ...obj2}
  • 传递函数参数:func(...args)

例如:

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
console.log([...arr1, ...arr2]); // 输出: [1, 2, 3, 4, 5, 6]

rest 运算符(...)

rest 运算符(...)用于将函数的参数收集到一个数组中。它通常用于:

  • 接收不定数量的参数:func(...params)
  • 将数组转换为函数参数:func(...arr)

例如:

function sum(...numbers) {
  return numbers.reduce((a, b) => a + b);
}
console.log(sum(1, 2, 3, 4, 5)); // 输出:15

用法比较

扩展运算符和 rest 运算符都是用于展开和收集元素的强大工具。然而,它们在用法和目的上有所不同:

用法 扩展运算符 rest 运算符
展开元素 将可迭代对象展开为单个元素 将函数参数收集到数组中
传递参数 传递函数参数 接收不定数量的参数
数组和对象 用于数组和对象 用于函数参数

实际应用场景

  • 合并数据: 扩展运算符可用于合并来自不同来源的数组和对象,创建新的集合。
  • 创建副本: 通过扩展运算符,你可以创建数组和对象的浅拷贝。
  • 函数柯里化: rest 运算符可用于创建函数柯里化版本,固定某些参数并返回一个接受其余参数的新函数。
  • 函数组合: rest 运算符可用于组合函数,创建一个新的函数,执行一系列操作。

结论

ES6 扩展运算符和 rest 运算符是 JavaScript 开发者必不可少的工具。它们提供了一种简单且优雅的方法来展开和收集元素,简化代码并提高可读性。通过掌握这些运算符,你可以创建更健壮、更灵活的应用程序。