多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] #### 箭头函数 如果参数只有一个,可以不用加传参的小括号 如果函数内容只有一行,可以不用加花括号和return,会直接返回=>后面的结果 let pf = x=>x*x; let foo = (x,y)=>x+y; let foo = (x,y)=>{ x++; y++; return x*y; } document.write(foo(3,4)); #### 设置默认值 let foo = (x,y=1)=>{ return x*y; } document.write(foo(4)); #### 神奇的三点 1.如果...arr当做形参,功能就是用来接收多余的参数 let foo = (x,y,...arr)=>{ //hd是一个数组,存放多传入的参数 console.log(arr); }; foo(1,2,'a','b','c') 2.如果...arr写在实参中,就表示将arr拆散 let foo = (x,y,z)=>{ return x*y*z; } let arr = [3,4,5]; document.write(foo(...arr)); let arr = [4,5]; document.write(foo(3,...arr)); #### 解构赋值 1.数组的解构赋值 let [hd,url] = ['后盾人','www.houdunren.com']; console.log(hd); console.log(url); 2.解构赋值就是"模式匹配",说白了,只要是左右两边结构一样,就能一一对应 let [x,[[y],[[z]]],q] = [1,[[2],[[3]]],4]; console.log(x); console.log(y); console.log(z); console.log(q); eg:值的互换 <script type="text/javascript"> var x = 1; var y = 2; //var z = x; //x = y; //y = z; let [x,y] = [y,x]; console.log(x); console.log(y); </script> #### 对象的解构赋值 对象的解构赋值,左右两边的变量名要一样,和对象中变量的顺序没有关系 <script type="text/javascript"> //let {hd,url} = {hd:'后盾人',url:'www.houdunren.com'}; //let {hd,url} = {url:'www.houdunren.com',hd:'后盾人',year:'2018'}; //结构并且重命名 let {hd:h,url:u} = {url:'www.houdunren.com',hd:'后盾人',year:'2018'}; console.log(h); console.log(u); </script> #### 字符串的解构赋值 let [x,y] = [1,2]; console.log(x,y); //let [x,y,z] = '后盾人'; console.log(x); console.log(y); console.log(z); //x、y、z分别对应后、盾、人 let {length:l} = '后盾人'; console.log(l); 运行结果:3 #### 函数参数的解构赋值 function foo([x,[[y]]]){ return x*y; } document.write(foo([3,[[4]]]));