ES7 中的函数 rest 参数

阅读时长 2 分钟读完

在 ES6 中,我们已经见识了很多新的函数特性,比如箭头函数、默认参数、解构赋值等等。但是在 ES7 中,我们还要了解一种新的参数语法:rest 参数。

什么是 rest 参数

Rest 参数是指在函数的定义中,用 ... 表示可以接收多个参数,并将这些参数转为一个数组。

具体来说,就是将多余的参数收集到数组中。在函数的定义中,可以将最后一个形参定义为 ...变量名 的形式。这个变量名可以随便取,但是一般都取 ...rest。在函数内部,你就可以使用这个数组了。

使用 rest 参数的好处

  1. 更加简洁

使用 Rest 参数可以让我们避免在每个函数中使用 arguments 对象,这样会让代码显得更加紧凑且可读性更强。

  1. 可以使代码更加通用

你可以将任意数量的参数传递给这个函数,这也意味着你可以将任何类型的参数传递给这个函数。这使得代码更加通用,因为你不需要为每种类型的参数编写不同的函数。

如何使用 rest 参数

下面我们来看一下如何使用 rest 参数。

在这个例子中,我们定义了一个函数 foo,并且将前两个参数指定为 a 和 b,最后一个参数使用 rest 参数来代表多余的参数。当我们调用 foo 函数时,我们传递了 5 个参数,但是只有前两个会被分配给 a 和 b,其余的三个会被收集到 rest 数组中。

然后,我们可以按照需要使用 rest 数组。

针对 rest 参数的一些注意事项

  1. Rest 参数只能是最后一个参数

需要注意的是,Rest 参数只能放在函数形参的最后一个位置。如果放在其他位置,就会导致语法错误。

  1. Rest 参数不影响函数的 length 属性

函数的 length 属性返回函数期望接收的参数数量(不包括默认参数与 rest 参数),这个属性并不受 rest 参数影响。具体来说,length 属性总是返回没有 rest 参数的形参个数。

总结

Rest 参数是 ES7 中引入的新特性,可以将多余的参数转化为一个数组,这极大地简化了代码。使用 Rest 参数时,需要注意它只能放在函数形参的最后一个位置,不影响函数的 length 属性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649694c048841e98943c56be

纠错
反馈