Promise本身是同步的立即执行函数,行resolve或者reject的时候, 此时是异步操作, 会先执行then/catch等,当主栈完成后,才会执行resolve/reject中存放的方法,打印结果是一个Promise实例

整理的是高频知识点,不足之处还请指出哈,后续会完善

 

新特性

  1. let,const申明
  2. 箭头函数
  3. 模板字符串
  4. 解构赋值
  5. 拓展运算符
  6. set()、map()
  7. async、await
  8. promise
  9. import导入、export导出
  10. for of、for in

 

let、const、var三者区别

let声明变量,const声明常量

let、const都有块级作用域,而var没有

var存在变量提升,而let、const不会

const与let最大不同在于,const声明后无法再次赋值

 

箭头函数与普通函数区别

  1. 箭头函数是匿名函数,不能作为构造函数,不能使用new
  2. 箭头函数不绑定this,会捕获其上下文this,作为自己的this
  3. 箭头函数没有原型属性

 

set、map的区别

set用于数据重组,map用于数据储存

set

  1. 成员不能重复
  2. 只有键值没有键名,类似数组
  3. 可以遍历,方法有add, delete、has等

map:

  1. 健值对的集合,类似集合
  2. 可以遍历,用来储存、查找

 

Class的理解

class可以看作是一个语法糖,只是让对象原型的写法更清晰,更像面向对象编程语法

class不存在变量提升,需先定义再使用

 

Promise的理解

Promise本身是同步的立即执行函数,行resolve或者reject的时候, 此时是异步操作, 会先执行then/catch等,当主栈完成后,才会执行resolve/reject中存放的方法,打印结果是一个Promise实例

 

Async/Await的理解

Async函数返回一个 Promise 对象,当函数执行的时候,一旦遇到 await 就会先返回,等到触发的异步操作完成,再执行函数体内后面的语句

Await含义为等待,也就是 async 函数需要等待await后的函数执行完成并且有了返回结果之后,才能继续执行下面的代码

 

forEach、for in、for of三者区别

forEach更多用来遍历数组

for in 常用来遍历对象或json,循环出的是key

for of数组对象都可以遍历,循环出的是value