let、const
var、let、const的区别
var 有变量提升;let、const不存在变量提升,变量只能在声明之后使用
var定义的变量可以声明多次,而let、const定义的变量在同一作用域下,只能声明一次
let、const存在块级作用域,var不存在块级作用域
var声明的变量没有自身的作用域,而let和const生命的变量有自身的作用域
const在声明变量时必须设置初始值,var和let则不用
解构赋值
数组解构
对象解构
箭头函数
箭头函数没有自己的this,箭头函数中的this指向箭头函数定义区域的this
obj是一个对象,对象没有自己的作用域,所以箭头函数被定义在全局作用域下,指向window,window下age为100,所以箭头函数中this.age弹出100
剩余参数
扩展运算符
set、map数据结构
可用数组去重
map:映射,原数组映射成一个新数组
map方法接受一个新参数,这个参数就是将原数组变成新数组的映射关系
promise
promise异步编程的一种解决方案,是一个构造函数,自己身上有all、resolve、reject方法,原型上有then、catch方法
与then同级的另一个方法,all方法,该方法提供了并行执行异步操作的能力,并且在所有异步操作执行完后并且执行结果都是成功的时候才执行回调。
Promise.all()并发处理多个异步任务,所有任务都执行完成才能得到结果
Promise.race()并发处理多个异步任务,只要有一个任务完成就能得到结果
有三种状态:pending(待处理),fulfilled(成功),rejected(失败)