自执行方法
定义一个自执行函数,函数定义完成后,自己执行一次,函数名可以省略,因为没有任何意义
注意:要以分号结束,否则可能会影响后面的语句。
(functionsayHello(){console.log('sayHello');})();
自执行函数的简写形式
+functionsayYes(){console.log('sayYes');}();
自执行函数,也可以直接定义成箭头函数
(()=>{console.log('aaa');})()
.rest参数
// ...args 就是rest参数functionfun1(a,b,c,...args){console.log(a,b,c);// arguments 是一个类数组对象,结构长得像数组,其实是一个object对象console.log(arguments);// rest参数 是一个数组对象,既然是数组,就可以直接使用数组的方法。console.log(args);}
.展开运算符
展开运算符就是...,可以将一个数组全部展开
letarr3=[...arr1,...arr2]
展开运算符,可以展开对象的全部成员,也可以将一个对象的成员,克隆给另一个对象
letlh2={...lh}
展开运算符,可以将多个对象的成员,合并到一个大的对象中,后面对象中的成员,如果跟前面对象中的成员同名,会覆盖前面的
letlxt={...lh,...gxt}
解构赋值
ES6中的解构赋值语句,可以直接将数组中的每个元素提取出来
方式是:let [变量名1,变量名2,...] = 数组
ES6中的解构赋值语句,可以直接将对象中的每个元素提取出来
方式是:let {name,age,gender,job} = obj
通常情况下,对象的属性名称叫什么,就定义什么名称的变量去接,如果出现了同名,可以修改名称
方式是:let {name,age:age1,gender,job} = obj
在ES6中,定义对象时,属性的左右两边的表达式相同时,可以省略右边的表达式,该对象在定义的时候,会自动往父级作用域寻找同名属性名对应的值