Es6 5.4

十四、Es6 *******

一、let、var、const区别 ****

let var 是声明变量的 const 是声明常量的
var 声明的变量会声明提升 但是 const 和 let 不会 (声明提升就是声明的变量会把声明语句提到作用域的顶端 但是赋值语句留在原地)
var 在全局作⽤域下声明变量会导致变量挂载在 window 上,其他两者不会
let 和 const 声明的是块级作用域 var 声明的是函数作用域
块级作用域:只要是大括号就能区分作用域
函数作用域: 只有函数才能区分作用域

四、class与class继承 *****

传统的 javascript 中只有对象,没有类的概念。它是基于原型的面向对象语言。Es5 的时候通过构造函数来创建类 到了 es6 我们就可以通过 class 关键字来创建类,跟传统的面向对象的语言更加接近。
ES5 中如果要生成一个对象实例,需要先定义一个构造函数,然后通过 new 操作符来创建实例。

ES6 中的类
ES6 引入了 class(类)这个概念,通过 class 关键字可以定义类。该关键字的出现使得 javascript 在对象写法上更加清晰,更像是一种面向对象的语言。
注意项: 1.在类中声明方法的时候,千万不要给该方法加上 function 关键字 2.方法之间不要用逗号分隔,否则会报错

ES5 中的继承 (组合继承:原型链继承 + 借用构造函数)
原型链继承:
父类的实例作为子类的原型
借用构造函数继承:
在子类内,使用 call()调用父类方法,并将父类的 this 修改为子类的 this.相当于是把父类的实例属性复制了一份放到子类的函数内.
组合继承:
既能调用父类实例属性,又能调用父类原型属性

Es6 的继承
Class cat extends 父类
然后在 constructor 中定义 super 可以设置继承父类的哪些属性

五、promise使用及实现 *****

什么是promise
promise是异步编程的一种方案,解决了地狱回调的问题,是一种链式调动的方式

Promise 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。

promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。

Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。

( 名词约定
promise(首字母小写)对象指的是“Promise实例对象”
Promise 首字母大写且单数形式,表示“Promise构造函数”
Promises 首字母大写且复数形式,用于指代“Promises规范”
Promise的两个特点
Promise对象的状态不受外界影响— )

1)pending 初始状态

2)fulfilled 成功状态

3)rejected 失败状态

Promise 有以上三种状态,只有异步操作的结果可以决定当前是哪一种状态,其他任何操作都无法改变这个状态

Promise的状态一旦改变,就不会再变,任何时候都可以得到这个结果,状态不可以逆,只能由 pending变成fulfilled或者由pending变成rejected

使用 new 来创建一个promise对象。
Promise接受一个「函数」作为参数,该函数的两个参数分别是resolve和reject。这两个函数就是就是「回调函数」

resolve函数的作用:在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;

reject函数的作用:在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去

then()方法: 执行成功的回调
catch()方法: 当执行 resolve 失败的回调

promise简单举例
//Promise异步封装ajax

后面两个例子理解

二、async/await*****

Async 和 await 是一种同步的写法,但还是异步的操作,
async和await必须同时使用
1.async的用法,放在函数前面
2.异步async函数调用,跟普通函数的使用方式一样
3.异步async函数返回一个promise对象
4.async函数配合await关键字使用 等待异步代码执行完才执行下一行代码
优点:1.方便级联调用2.同步代码编写方式3.多个参数传递4.同步代码和异步代码可以一起编写5.sync/await是对Promise的优化

使用场景:async主要来处理异步的操作, 处理回调地狱

七、generator函数 ***

generator是ES6提供的一种异步编程解决方案
但是它有两个特征。第一就是function关键字与函数名之间有一个*号,其二就是函数体内使用yield表达式来遍历状态
通常使用遍历器对象的next方法。使得指针移向下一个状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值