| 
 
| ### ES6 ##### 一、let关键字
 1、块级作用域:代码块作用域,一对{}产生的作用域
 作用:声明变量
 语法:let 变量名 = 值;
 特点:
 1、使用let声明的变量具有块级作用域,
 2、没有变量提升,必须先申明再使用
 3、存在暂时性死区,当用let声明变量后,就与该块级作用域绑定,变量在查找的时候,就不会往上级作用域查找
 
 
 ##### 二、const 关键字
 作用:声明常量
 语法:const 常量名  =  初始值;
 特点:
 1、声明常量时,必须赋初始值
 2、具有块级作用域(同let声明的变量一样,只在当前的代码块中有效)
 3、简单数据类型,字符串,数字的值不能变
 复杂数据类型,内存地址不可变,值可以改变
 
 
 ##### 三、解构赋值
 提取数组或者对象,赋值给变量【简化代码】
 《1》数组解构:[] = 数组    ([]在等号左边表示 数组解构,在等号右边表示数组)
 语法:  let [变量1,变量2] = 数组
 作用:把数组中第一个元素赋值给变量1,第二个元素赋值给变量2...
 
 
 
 《2》对象解构:{} = obj
 
 语法:let {属性名:变量1,属性名:变量2,方法名:变量3}  = 对象
 作用:把对象的属性1的值赋值给变量1, 把对象属性2的值赋值给变量2,把对象的方法赋值给变量3
 let {属性名1,属性名2} = 对象
 
 特殊情况:如果变量名和属性名一致,变量名可以省略
 
 
 
 
 ##### 四、函数的扩展语法箭头函数&剩余参数:
 《1》箭头函数:
 1、把function关键字去掉 =>
 
 
 2、如果函数体内只有一行代码,将花括号和return去掉
 
 
 3、如果函数的形参只有一个,可将小括号去掉
 
 
 
 注意:箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this
 
 《2》剩余参数:(打包三个点)
 作用:将剩余的参数打包成一个数组,接收多个实参
 语法:在形参变量前加上...
 注意:剩余参数必须是最后一个形参
 
 与数组解构搭配使用,打包剩余的数组元素
 
 
 
 ###### 五、 数组的扩展语法
 1、扩展运算符(扩展三个点)
 作用:将数组拆分成参数序列
 语法:在数组的前面加...
 
 数组扩展的方法:
 
 1、Array.from()  将伪数组转为真数组,还可以遍历数组
 
 
 2、数组.find()  :查找并返回满足条件的第一个元素
 
 
 3、数组.findIndex()  :查找并返回满足条件的第一个元素的索引
 
 
 4、数组.includes()  :判断是否有某个元素,返回值是一个布尔值
 
 ##### 六、字符串扩展语法
 1、模板字符串【定义字符串的新方式】
 let str= ·字符·;
 特点:
 - 字符串中可以使用变量:${变量}
 - 字符串可以换行
 - 字符串中可以调用函数: ${函数}
 
 2、字符串新增方法:
 str. startsWith('字符') :判断字符串是否以某个字符开始返回值是布尔值
 str.endsWith('字符')  :判断字符串是否以某个字符结尾返回一个布尔值
 str.repeat(数字)   :表示将前面的字符串重复多少次
 
 ####  set 集合
 数组是一组数据的集合,数组中的每个数据叫元素
 集合:是一堆数据的集合,但是数据不能重复
 创建集合:
 var s = new Set()
 方法:
 set.add('新添加的元素') 给set集合添加元素 可以链式写法
 s4.add('a').add('b'); //向集合s4中添加a元素,再添加b元素
 set.delete('元素') 删除集合中的某个元素 返回新的集合
 set.has('元素')判断集合中是否有某个元素,返回布尔值
 clear()  清空set集合,没有返回值
 set.forEach(function(){}) 同数组一样遍历集合
 属性:set.size,获取集合中的元素个数 同数组.length
 
 
 | 
 |