1:函数参数的默认值
在ES6之前不能直接为函数设置默认值,只能在函数内单独判断处理。ES6可以为函数设置默认值。
注意:参数变量是默认声明的,因此不允许在函数内部重新使用let 和const 声明,var 可以(不过一般不能这样做)
可以与解构赋值默认值结合使用。
实例
作用域:
注意:一旦设置了参数的默认值,函数进行声明初始化时,参数会形成一个单独的作用域(context)。等到初始化结束,这个作用域就会消失。这种语法行为,在不设置参数默认值时,是不会出现的。
2:rest参数
用途:用于获取函数的多余参数,可以替代arguments对象。符号 :...
形参是对象:
3:扩展运算符
用途:将一个数组转为用逗号分隔的参数序列,运算符也是(...),相当于 rest 的逆运算。
应用场景
1:合并数组:
2:将实现Iterator接口的对象转为真正的数组
例如Set,Map,nodeList对象可以转为真正的数组。因为类数组对象没有实现Iterator接口所以不行,只能使用Array.from()来实现
3:字符串转为数组(可以用来解决判断字符串第几位是某个值,避免在截字符串了)
4:与解构结合获取剩余参数,其实和rest 差不多。