函数的扩展

  • ** 参考**
    书籍:ECMAScript 6 入门
    作者:阮一峰

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

  • 应用
    利用参数默认值,可以指定某一个参数不得省略,如果省略就抛出一个错误。


  • 扩展运算符...的应用
    扩展运算符提供了数组合并的新写法。
    与解构赋值结合。
    解决函数返回值只有一个问题。
    将字符串转为数组。

  • 箭头函数=>
  • 函数绑定运算符::

  • 尾调用优化
    尾调用由于是函数的最后一步操作,不需要保留外层函数的调用帧,因为调用位置、内部变量等信息都不会再用到了,只要直接用内层函数的调用帧,取代外层函数的调用帧就可以了,这将大大节省内存。

  • 尾递归优化
    递归非常耗费内存,因为需要同时保存成千上百个调用帧,很容易发生“栈溢出”错误(stack overflow)。但对于尾递归来说,由于只存在一个调用帧,所以永远不会发生“栈溢出”错误。

  • 函数参数的尾逗号
    如果像上面这样,将参数写成多行(即每个参数占据一行),以后修改代码的时候,想为函数clownsEverywhere添加第三个参数,或者调整参数的次序,就势必要在原来最后一个参数后面添加一个逗号。这对于版本管理系统来说,就会显示添加逗号的那一行也发生了变动。这看上去有点冗余,因此新的语法允许定义和调用时,尾部直接有一个逗号。

你可能感兴趣的:(函数的扩展)