es6新特性

241 阅读2分钟

1. let const 和 var的区别

  • var 有变量提升, letconst 没有变量提升
  • let 声明的为变量,const为常量
  • const赋值对象或者数组的时候,对象和数组的值可以被改变,const保证的是指针不变(不保证值不变)
  • let const 变量 为块级作用域
  • let const 变量不能重复
  • let const 会形成暂时性死区

2. 详细介绍promise

  1. 因为传统异步是通过回到函数方式结果的,为了解决回调地狱导致代码可读性差,可维护成本,所以有了promise

  2. promise 三种状态 pending(进行中) resolve(已完成) reject(已拒绝)

  3. promise中原型上方法 then catch catch不会所有的错误,then 执行状态改变,then返回新的promise,then也可以执行 下一个prmise 任务。支持.then 通过链式调用完成多个异步任务

  4. new Promise 中函数为同步执行 .then中函数为异步执行了

  5. Promise 上静态方法:all race resolve reject 等

    • all 处理并发业务,所有的都成功了执行then
    • race 多个promise 中 有一个成功了执行then
    • resolve 将状态变为已完成
    • 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 类型

  1. 可以实例化对象

  2. extends 继承

  3. constructor 构造器,当class 类执行时候;触发constructor 狗爪槭

  4. super 触发父类中的构造器

  5. static 关键字可以定义,类的静态属性和静态方法

7. class 中super 你是怎么应用的

  1. 触发父类的构造器
  2. 在子类中调用父类的静态方法

8. es6 对象扩展有那些内容

  1. 解构赋值

  2. 对象属性简写

  3. 扩展运算符

9. 请说出箭头函数有什么特点

  1. 匿名函数改为箭头函数

  2. 没有this 使用上一层中的this

  3. 没有arguemets 用 rest 参数代替

10. 异步编程语言进化的过程是什么?

回调函数---> promise --->generator ---->async await