在 ES6 中,我们已经见识了很多新的函数特性,比如箭头函数、默认参数、解构赋值等等。但是在 ES7 中,我们还要了解一种新的参数语法:rest 参数。
什么是 rest 参数
Rest 参数是指在函数的定义中,用 ... 表示可以接收多个参数,并将这些参数转为一个数组。
具体来说,就是将多余的参数收集到数组中。在函数的定义中,可以将最后一个形参定义为 ...变量名
的形式。这个变量名可以随便取,但是一般都取 ...rest
。在函数内部,你就可以使用这个数组了。
使用 rest 参数的好处
- 更加简洁
使用 Rest 参数可以让我们避免在每个函数中使用 arguments 对象,这样会让代码显得更加紧凑且可读性更强。
- 可以使代码更加通用
你可以将任意数量的参数传递给这个函数,这也意味着你可以将任何类型的参数传递给这个函数。这使得代码更加通用,因为你不需要为每种类型的参数编写不同的函数。
如何使用 rest 参数
下面我们来看一下如何使用 rest 参数。
function foo(a, b, ...rest) { console.log(a); // 输出 1 console.log(b); // 输出 2 console.log(rest); // 输出 [3, 4, 5] } foo(1, 2, 3, 4, 5);
在这个例子中,我们定义了一个函数 foo,并且将前两个参数指定为 a 和 b,最后一个参数使用 rest 参数来代表多余的参数。当我们调用 foo 函数时,我们传递了 5 个参数,但是只有前两个会被分配给 a 和 b,其余的三个会被收集到 rest 数组中。
然后,我们可以按照需要使用 rest 数组。
针对 rest 参数的一些注意事项
- Rest 参数只能是最后一个参数
需要注意的是,Rest 参数只能放在函数形参的最后一个位置。如果放在其他位置,就会导致语法错误。
- Rest 参数不影响函数的 length 属性
函数的 length 属性返回函数期望接收的参数数量(不包括默认参数与 rest 参数),这个属性并不受 rest 参数影响。具体来说,length 属性总是返回没有 rest 参数的形参个数。
总结
Rest 参数是 ES7 中引入的新特性,可以将多余的参数转化为一个数组,这极大地简化了代码。使用 Rest 参数时,需要注意它只能放在函数形参的最后一个位置,不影响函数的 length 属性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649694c048841e98943c56be