1,展开运算符(...)是ES6新加特性,它给我们带来很多便利。IE浏览器不支持展开运算符。
2,展开运算符的使用:剩余参数,数组展开,对象展开,展开参数(可以认为剩余参数和展开参数是相反的执行结果)
//1,将展开运算符用在参数列表上fn(...args){},这种语法也叫剩余语法,args是剩余参数 --------
//如下使用:
function fn(...args){
console.log(args);
}
fn(1,5,0);
//输出:
//[1,5,0]
//剩余参数之前可以有n个参数,但剩余参数必须是参数列表的最后一个
function fn1(arg1, arg2, ...args){
console.log(arg1, arg2, args);
}
fn1(1,5,3); //此时剩余参数args的值: [3]
//1 5 [3]
fn1(1,5); //此时剩余参数args的值是个空数组: []
//1 5 []
fn1(1); //此时第二个参数值arg2是undefined,剩余参数args是空数组;[]
//1 undefined []
//可以认为当没有剩余的参数时,剩余参数是个没有元素的空数组--
//当剩余参数不是参数列表的最后一个时,会报错;毕竟剩余参数的意义是将剩下参数收集到一个数组中,--
//像如下这种使用并未支持。
function fn2(arg1, ...args, argn){
}
//SyntaxError: Rest parameter must be last formal parameter
//2,展开参数,是在调用函数时,传入的值是个可迭代对象如数组,以下会以参数值类型是数组为例-------
//在传入的值前使用展开运算符,可以让数组的