es6 正式推出两年多了,给前端小伙伴带来了很多东东,最令自己兴奋的还是箭头函数 =>。有了箭头函数在写js方法时再也不用写function 关键字感觉很爽,虽然只是语法糖但用起来感觉很爽代码整洁多了且不存在变量提升,js 更像一门函数式编程语言了加上它的弱类型的灵活性只要用的小心得体它更能让程序员随心所欲的表达想法,不含水分那种且很优雅。优雅的代码是程序员的追求,在PM 面前,习惯了以效率为先,私下里却追寻着优雅与质量。我写模块习惯于先不问青红皂白的弄出来,PM 问起来时至少有话说,然后就琢磨着怎么写更优雅更健壮。
后台开发我一直用c# 语言,习惯了linq表达式,习惯了lamda,在写前端代码时总想整点什么。箭头函数配合underscore库(或lodash)有种写后台代码的感觉,思维更连贯过度更平滑。
不说废话了,切入正题,先摘一段MDN 上关于剩余参数的介绍
剩余参数语法允许我们将一个不定数量的参数表示为一个数组。
语法
function(a, b, ...theArgs) {
// ...
}
如果函数的最后一个命名参数以...
为前缀,则它将成为一个数组,其中从0
(包括)到theArgs.length
(排除)的元素由传递给函数的实际参数提供。
在上面的例子中,theArgs
将收集该函数的第三个参数(因为第一个参数被映射到a
,而第二个参数映射到b
)和所有后续参数。
剩余参数和 arguments
对象的区别
剩余参数和 arguments
对象之间的区别主要有三个: