1、promise
promise是es6处理异步的一种方式,它的本质和参数分别是一个对象一个回调,回调有俩个参数 成功回调resolve(芮早)失败回调 reject (芮杰克特)。它有三种状态分别为 初始状态pending (盆丁) 已完成状态fulfilled(fo fai哦的) 已失败状态rejected(芮杰克特的)。状态改变只有两种结果 完成或者失败。
promise处理错误的方式有两种
第一种方式在then中传递两个回调 第二个回调是错误回调
第二种方式是通过catch(凯尺)方式来实现
promise常用的api有 then ()处理回调函数 catch(凯尺)捕获异常 还有两个常用的静态方法
Promise.all()一块处理多个promise请求,所有的请求都成功才成功。
Promise.race()一块处理多个promise请求,有一个成功就成功
es7中可以使用async(饿猩可)实现异步处理,使用await(饿喂特)关键字可以实现异步函数同步化
2、es6新增了模块化
根据功能封装模块 通过import(因炮特)导入
然后通过export(爱克斯炮特)或 export default(爱克斯炮特 第fao特) 导出 他们的区别是
-
export (爱克斯炮特)可以导出多个属性或者方法需要用{}括起来,在用 import(因炮特)接受的时候也得用{}接受
-
export default (爱克斯炮特 第fao特)是以整体的方式抛出,接受的时候只接一个
3、新增类class关键字
class关键字是 es5构造函数 + 原型模式 创建对象的语法糖。
创建类的方式 class 类名 构造函数和方法
通过extends(爱克斯 den斯)关键字实现继承。
4. 新增了 let const关键字 他们的区别是
-
let 代码块有效 var全局有效
-
let 不存在重复声明 var可以多次声明
-
let不存在变量提升 var存在变量提升
-
const (康斯特)存储常量 和 简单数据类型
5、新增的解构赋值
解构赋值针对 数组 或者 对象 进行 模式匹配,然后对其中的 变量进行赋值。
let [a,b]=[1,2]
let {user}={user:“xiaosi”}
6、新增了箭头函数 箭头函数和普通函数的区别?
-
普通函数存在着变量的提升,箭头函数没有
-
普通函数的this指向谁就调用谁,箭头函数是在哪定义就指向谁
-
普通函数可以当成构造函数,而箭头函数是不可以的
-
箭头函数没有arguments(儿古们特斯),要接受所有的参数使用...rest
7、新增数据类型
-
简单数据类型 Number 、 String 、 Boolean 、 null 、undefined 、Symbol
-
引用数据类型 Object Array Function Date RegExp