ES6 Rest 参数

17 Mar 2025 | 阅读 2 分钟

Rest 参数是在 ECMAScript 2015 或 ES6 中引入的,它提高了处理参数的能力。 Rest 参数允许我们将不确定数量的参数表示为一个数组。 通过使用 Rest 参数,可以使用任意数量的参数调用函数。

在 ES6 之前,使用了函数的 arguments 对象。 arguments 对象不是 Array 类型的实例。 因此,我们不能直接使用 filter() 方法。

Rest 参数以三个点 (...) 为前缀。 尽管 Rest 参数的语法与展开运算符相似,但它与展开运算符完全相反。 Rest 参数必须是最后一个参数,因为它用于将所有剩余元素收集到一个数组中。

语法

示例

输出

Sum = 60

我们在函数中传递的所有参数都将映射到参数列表。 如上所述,Rest 参数 (...) 应该始终位于参数列表的最后。 如果我们将其放置在其他任何位置,则会导致错误。

具有以下语法的 Rest 参数将导致错误。

Rest 参数和 arguments 对象的区别

Rest 参数arguments 对象彼此不同。 让我们看看 Rest 参数和 arguments 对象之间的区别

  • arguments 对象是一个类似数组的对象(但不是数组),而 Rest 参数是数组实例。 arguments 对象不包含诸如 sort、map、forEachpop 之类的方法,但这些方法可以直接在 Rest 参数中使用。

Rest 参数和解构

解构意味着将复杂的结构分解为更简单的部分。 我们可以将数组定义为 Rest 参数。 传入的参数将被分解到数组中。 Rest 参数仅支持数组解构。

通过使用 Rest 参数,我们可以将数组的所有剩余元素放入一个新数组中。

让我们看一个相同的例子。

示例

输出

Violet
Indigo
[ 'Blue', 'Green', 'Yellow', 'Orange', 'Red' ]

动态函数中的 Rest 参数

JavaScript 允许我们使用 function 构造函数创建动态函数。 我们可以在动态函数中使用 Rest 参数。

示例

输出

[ 10, 20, 30 ]

下一个主题ES6 变量