一.新增声名:let const
(1).不存在变量提升
(2).暂时性死区
(3).不能重复声明:
(4).let和const区别;const声明的是一个常量,当声明引用数据类型时,是说他的堆存储的地址不允许更改;
let声明的会被后面的覆盖
二.新增一种数据类型:symbol
是一种简单数据类型,是代表唯一的一个。用typeof检测数据类型返回为 symbol。
常用于给对象添加私有属性
三.结构赋值:
es6允许按照一定的结构对变量进行赋值;叫解构赋值
主要针对对象和数组两种
数组的。有序排列:1.找不到为undefined ,2.可以设置默认值
对象的。无序排列:1.交换变量 ,2.可以设置默认值
四.Promise,异步编程的一种方案,解决了地狱回调的问题,是一种链式调动的方式
接收两个函数作为参数 resolve,reject
有三种状态:
(1)pending-----初始状态,正在进行
(2) resolve---------fulfilled-----成功状态
(3) reject-----------rejected----失败状态
回调地狱某种解决办法:
all等待所有promise都完成才执行
race--哪个先执行结束就执行哪个
五.es6新增运算符 2**8 (2的8次方)
六.箭头函数 ()=>{}
1.如果没有参数或者有多个参数,参数要有()包裹,一个参数()可以省略
2. 箭头函数没有this指向
3.箭头函数不能作为构造函数
4.没有arguments
七:findIndex,
findIndex() 方法返回数组中通过测试的第一个元素的索引(作为函数提供)。
findIndex() 方法对数组中存在的每个元素执行一次函数:
如果找到函数返回 true 值的数组元素,则 findIndex() 返回该数组元素的索引(并且不检查剩余值),否则返回 -1。(findIndex() 不会为没有值的数组元素执行函数。findIndex() 不会改变原始数组)
八。Generator函数
声明: function和函数名之间加一个 * 。普通函数就会变成Generator函数
特点:解决异步编程的一种解决方案,分段执行。启动函数:next().执行时,配合 yield 使用
因为是函数,所以有参数和返回值
九。async await
Async 和 await 是一种同步的写法,但还是异步的操作,两个内容还是必须同时去写才会生效不然的话也是不会好使
1.asayc的用法,它作为一个关键字放到函数前面,这样普通函数就变为了异步函数
2.异步async函数调用,跟普通函数的使用方式一样
3.异步async函数返回一个promise对象
4.async函数配合await关键字使用(阻塞代码往下执行)是异步方法,但是阻塞式的