函数的扩展
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)。