es6 剩余参数+ 解构赋值+默认值
2018-01-08 23:39
423 查看
es6 正式推出两年多了,给前端小伙伴带来了很多东东,最令自己兴奋的还是箭头函数 =>。有了箭头函数在写js方法时再也不用写function 关键字感觉很爽,虽然只是语法糖但用起来感觉很爽代码整洁多了且不存在变量提升,js 更像一门函数式编程语言了加上它的弱类型的灵活性只要用的小心得体它更能让程序员随心所欲的表达想法,不含水分那种且很优雅。优雅的代码是程序员的追求,在PM 面前,习惯了以效率为先,私下里却追寻着优雅与质量。我写模块习惯于先不问青红皂白的弄出来,PM 问起来时至少有话说,然后就琢磨着怎么写更优雅更健壮。
后台开发我一直用c# 语言,习惯了linq表达式,习惯了lamda,在写前端代码时总想整点什么。箭头函数配合underscore库(或lodash)有种写后台代码的感觉,思维更连贯过度更平滑。
不说废话了,切入正题,先摘一段MDN 上关于剩余参数的介绍
剩余参数语法允许我们将一个不定数量的参数表示为一个数组。
语法
如果函数的最后一个命名参数以
在上面的例子中,
剩余参数和
剩余参数和
剩余参数只包含那些没有对应形参的实参,而
结合上述描述 剩余参数也可用在箭头函数中 ,const arrayFn=(...[a=1,b=2,c=3])=>a+b+c; 没有任何参数时就用默认值,指定参数时,依次赋值。arrayFn() ,输出6,arrayFn(2,3) 输出8
后台开发我一直用c# 语言,习惯了linq表达式,习惯了lamda,在写前端代码时总想整点什么。箭头函数配合underscore库(或lodash)有种写后台代码的感觉,思维更连贯过度更平滑。
不说废话了,切入正题,先摘一段MDN 上关于剩余参数的介绍
剩余参数语法允许我们将一个不定数量的参数表示为一个数组。
语法
function(a, b, ...theArgs) { // ... }
如果函数的最后一个命名参数以
...为前缀,则它将成为一个数组,其中从
0(包括)到
theArgs.length(排除)的元素由传递给函数的实际参数提供。
在上面的例子中,
theArgs将收集该函数的第三个参数(因为第一个参数被映射到
a,而第二个参数映射到
b)和所有后续参数。
剩余参数和 arguments
对象的区别
剩余参数和 arguments对象之间的区别主要有三个:
剩余参数只包含那些没有对应形参的实参,而
arguments对象包含了传给函数的所有实参。
arguments对象不是一个真正的数组,而剩余参数是真正的
Array实例,也就是说你能够在它上面直接使用所有的数组方法,比如
sort,
map,
forEach或
pop。
arguments对象还有一些附加的属性 (如
callee属性)。
结合上述描述 剩余参数也可用在箭头函数中 ,const arrayFn=(...[a=1,b=2,c=3])=>a+b+c; 没有任何参数时就用默认值,指定参数时,依次赋值。arrayFn() ,输出6,arrayFn(2,3) 输出8
相关文章推荐
- 【es6】【变量的解构赋值】【字符串,数值和布尔值解构】【函数参数的解构赋值】【用途】
- 11、ES6 函数参数的解构赋值
- es6 -- 与解构赋值默认值结合使用
- ECMAScript 6 学习系列课程 (ES6 默认值和解构赋值的使用)
- es6中的解构赋值、扩展运算符和rest参数使用详解
- es6-解构赋值和默认值
- ES6——Day3(字符串的解构赋值+函数参数解构赋值)
- ES6解构赋值的默认值
- 解构、参数默认值,不定参数,拓展参数、for of 值遍历
- es6 解构赋值
- js 解构和剩余参数
- 【ES6学习】— (1)ES6简介、let与const命令以及变量的解构赋值
- ES6 变量解构赋值
- ES6新特性:利用解构赋值 (destructuring assignment), 简化代码
- ES6小实验-变量的解构赋值
- ES6学习之变量的解构赋值
- ES6入门——变量的解构赋值
- ES6: 解构赋值
- ES6解构赋值
- ES6之解构赋值