函数的扩展

1.函数参数的默认值

ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。

2.rest参数

ES6 引入 rest 参数(形式为“...变量名”),用于获取函数的多余参数,这样就不需要使用arguments对象了。

3.扩展运算符

扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

4.严格模式

ES2016 做了一点修改,规定只要函数参数使用了默认值、解构赋值、或者扩展运算符,那么函数内部就不能显式设定为严格模式,否则会报错。

5.name 属性

函数的name属性,返回该函数的函数名。

6.箭头函数

ES6允许使用“箭头”(=>)定义函数。

7.绑定 this(还是ES7的一个提案)

箭头函数可以绑定this对象,大大减少了显式绑定this对象的写法(call、apply、bind)

8.尾调用优化

尾调用(Tail Call)是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。

9.函数参数的尾逗号

ES2017 允许函数的最后一个参数有尾逗号(trailing comma)。