本文概述
- Rest Parameter和arguments对象之间的区别
- 休息参数和解构
- 动态函数中的剩余参数
在ES6之前, 使用了函数的arguments对象。 arguments对象不是Array类型的实例。因此, 我们不能直接使用filter()方法。
rest参数以三个点(… )为前缀。尽管rest参数的语法类似于扩展运算符, 但与扩展运算符完全相反。 rest参数必须是最后一个参数, 因为它用于将所有剩余元素收集到一个数组中。
语法
function fun(a, b, ...theArgs) {// statements}
例子
function show(...args) {let sum = 0;
for (let i of args) {sum += i;
}console.log("Sum = "+sum);
}show(10, 20, 30);
输出如下
Sum = 60
我们在函数中传递的所有参数都将映射到参数列表。如上所述, rest参数(… )应该始终位于参数列表的最后。如果将其放置在其他任何地方, 将导致错误。
具有以下语法的rest参数将导致错误。
function show(a, ...rest, b) {// error };
Rest Parameter和arguments对象之间的区别rest参数和arguments对象彼此不同。让我们看看rest参数和arguments对象之间的区别:
- arguments对象是类似数组的(但不是array), 而其余参数是数组实例。 arguments对象不包含诸如sort, map, forEach或pop之类的方法, 但是这些方法可以直接用于rest参数中。
通过使用rest参数, 我们可以将数组的所有剩余元素放入新数组中。
让我们看一下相同的例子。
例子
var colors = ["Violet", "Indigo", "Blue", "Green", "Yellow", "Orange", "Red"];
// destructuring assignmentvar [a, b, ...args] = colors;
console.log(a);
console.log(b);
console.log(args);
输出如下
VioletIndigo[ 'Blue', 'Green', 'Yellow', 'Orange', 'Red' ]
动态函数中的剩余参数JavaScript允许我们使用函数构造函数创建动态函数。我们可以在动态函数中使用rest参数。
例子
let num = new Function('...args', 'return args');
console.log(num(10, 20, 30));
【ES6 rest参数用法解释】输出如下
[ 10, 20, 30 ]
推荐阅读
- ES6 set介绍和用法详解
- ES6 Promise介绍和用法示例
- ES6页面重定向
- ES6页面打印
- Android 切换横竖屏
- App地推业绩统计方法选择不当会产生什么问题()
- adjustsFontSizeToFitWidth 与NSLineBreakByCharWrapping 无法共用
- Could not find com.android.tools.build:gradle:2.2.3
- Dapper操作Sql Server和MySql数据库