1. let const 和 var的区别
var
有变量提升,let
和const
没有变量提升let
声明的为变量,const为常量const
赋值对象或者数组的时候,对象和数组的值可以被改变,const
保证的是指针不变(不保证值不变)let const
变量 为块级作用域let const
变量不能重复let const
会形成暂时性死区
2. 详细介绍promise
-
因为传统异步是通过回到函数方式结果的,为了解决回调地狱导致代码可读性差,可维护成本,所以有了promise
-
promise 三种状态 pending(进行中) resolve(已完成) reject(已拒绝)
-
promise中原型上方法 then catch catch不会所有的错误,then 执行状态改变,then返回新的promise,then也可以执行 下一个prmise 任务。支持.then 通过链式调用完成多个异步任务
-
new Promise 中函数为同步执行 .then中函数为异步执行了
-
Promise 上静态方法:all race resolve reject 等
all
处理并发业务,所有的都成功了执行thenrace
多个promise 中 有一个成功了执行thenresolve
将状态变为已完成reject
将状态变为已拒绝
3. promise 中那些是异步的那些是同步的
new promise 中函数 为同步
.then .catch 中函数为异步
4. 如何解决回调地狱代码可读性差
promise
5. 谈谈你对 async awiat 的理解
1: async
函数 返回值为 promie实例
2:await
只能在 async 中使用
3:async awati
同步写法异步的程序
4:await
后面需要跟 promise
实例
- async 返回的 ----> await返回值 return
- new Promise -----> await 返回值 resolve实参
- then 返回的promise ----> await 返回值 then中函数的 return
6. 说一下class 的作用
是 es6中新增的class 类型
-
可以实例化对象
-
extends 继承
-
constructor 构造器,当class 类执行时候;触发constructor 狗爪槭
-
super 触发父类中的构造器
-
static 关键字可以定义,类的静态属性和静态方法
7. class 中super 你是怎么应用的
- 触发父类的构造器
- 在子类中调用父类的静态方法
8. es6 对象扩展有那些内容
-
解构赋值
-
对象属性简写
-
扩展运算符
9. 请说出箭头函数有什么特点
-
匿名函数改为箭头函数
-
没有this 使用上一层中的this
-
没有arguemets 用 rest 参数代替
10. 异步编程语言进化的过程是什么?
回调函数---> promise --->generator ---->async await