ES6变量定义:letconst的使用方法和var一样。与var的区别:不预先解析,不重复定义,块级作用域——全局定义的变量不在window中,有花括号时,会限制在花括号中。必须为const定义分配一个值。const的值不允许被修改。模板字符串:使用反引号定义字符串。与单引号和双引号字符串相比的优点:多行定义一个字符串,在控制台多行显示模板字符串中的变量,省略拼接箭头函数:语法:()=>{}//简化匿名函数特点:只有一个形参时,括号可以省略;当花括号中只有一行代码时,花括号可以省略,如果这行代码中有return,则return形参必须省略,直接赋值即可一个带a的形参默认值必须放在所有形式参数的末尾。该参数可以在调用函数时作为实参传递,也可以不传递。解构赋值,快速将对象或数组中的数据批量赋值给变量。对象:var{PropertyName,PropertyName}=Objectvar{PropertyName:Variable,PropertyName:Variable}=Objectvar{PropertyName:{PropertyName:Variable}}=ObjectArray:var[Variable,Variable]=Arrayvar[variable,[variable,variable]]=array数组解构可以实现一行代码交换两个变量的值:var[a,b]=[b,a]对象的属性名和值使用时对象的简写形式同名变量可以缩写。varname='张三'varage=12varobj={name:name,age:age}//简写为varobj={name,age}方法简写:varobj={eat:function(){}}//简写:varobj={eat(){}}地图数据是一个对象,其属性可以是任何类型。varobj={name:'张三'}varmap=newMap([[obj,'object'],['age':12]])setdata是对象属性的集合。没有重复元素的数组。使用set去重数组:vararr=[1,1,2,2,2,2]varbrr=[...newSet(arr)]forof是es6提供的一种遍历数据值的语法。你可以遍历字符串、数组、映射、集合……运算符可以将多个元素组合成一个数组。当...array作为形参时,会将多个实参组合成一个数组,对象或数组可以扩展成多个键值对或多个值。varobj={name:'张三',age:12}varpbj={...obj,sex:'男'}当...数组作为实参时,将数组展开为对应的多个数据多个参数。vararr=[1,5,9,3,4,7,6,2,8]Math.max(...arr)this关键字this是js中的一个关键字,在不同的scope数据中表示不同。全局-窗口普通函数-窗口自调用函数-窗口定时器-窗口事件函数-事件源标签对象方法-对象构造函数-新建对象箭头函数-函数定义后上层作用域内的this无法确定this的含义关键取决于函数的最终调用方式。改变this的含义:call:调用一个函数,改变this函数。call(newthis,原函数需要的实参1,原函数需要的实参2,...)apply:调用一个函数,改变thisfunction.apply(newthis,[原函数需要的实参1,原函数需要的实参2,...])bind:复制一个函数得到一个新的函数并改变thisfunction.bind(newthis)//返回新函数
