这篇文章是学习笔记,参考ES6入门-数组扩展(阮一峰)展开运算符意思展开运算符(展开)是三点(...),把数组转换成逗号分隔的参数序列。console.log([1,2,...[3,4,5],6]);//[1,2,3,4,5,6]主要用于形参的函数调用:functionpush(array,...items){array.push(...items)}leta1=[1,2];推(a1,3,4,5);控制台日志(a1);//[1,2,3,4,5]作为参数:functionadd(x,y,z){returnx+y+z;}console.log(add(...[1,2,3]));//6展开运算符可以和普通的函数参数组合functionf(a,b,c,d,e){console.log(...arguments);//1,2,3,4,5}常量=[2,3];f(1,...arry,4,...[5])表达式letodd=true;constarry=[...(奇数?[1,3,5]:[2,4,6]),10];//[1,3,5,10]??注意:只有调用函数时,展开运算符才可以放在圆括号中,否则会报错。console.log((...[1,2]));//UncaughtSyntaxError:Unexpectedtoken'...'console.log(...[1,2])//12替换函数apply()方法而不是applyes6,如果你需要将数组转换为函数参数,你将使用apply()方法functionadd(a,b,c){returna+b+c;}vararr=[3,4,5];添加.apply(null,arr);//ES5写法add(...arr);//ES6写法实例1Math.max.apply(null,[5,51,54,3,1]);//ES5写法Math.max(...[5,51,54,3,1]);//ES6编写示例2vararr1=[1,2,3];vararr2=[4,5,6];Array.prototype.push.apply(arr1,arr2);//ES5的写法arr1.push(...arr2);//这里ES6写法Function.prototype.apply(),添加关于apply()源码手写apply()方法ES3版本实现es3applyFunction.prototype.es3apply=function(context,arr){vartarget=context||窗户;target.fn=这个;变量结果;如果(!arr){结果=target.fn();}else{变量参数=[];for(leti=0;i
