1、参数作用域
一旦设置了参数的默认值,函数进行声明初始化时,参数会形成一个单独的作用域(context)。等到初始化结束,这个作用域就会消失。这种语法行为,在不设置参数默认值时,是不会出现的。
2、rest参数
ES6 引入 rest 参数(形式为...变量名
),用于获取函数的多余参数,这样就不需要使用arguments
对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。
rest参数后不能有其他参数
3、箭头函数
注意:
(1)函数体内的this对象,就是定义时所在的对象,不是使用所在的对象
(2)不可以当做构造函数,不可以用new
(3)不可以用arguments对象,如果要用,用rest参数代替
(4)不可以用yield命令
关于第一点:
4、双冒号运算符:函数绑定运算符
函数绑定运算符是并排的两个冒号(::
),双冒号左边是一个对象,右边是一个函数。该运算符会自动将左边的对象,作为上下文环境(即this
对象),绑定到右边的函数上面。
5、尾调用优化
尾调用: