ES6笔记

ES6新增声明变量的方法

在ES5中,声明变量只有var和function两种形式,但因为var声明的变量有一定的缺点,ES6新增了let和const这两种声明变量的方式。

1.变量提升
var声明的变量存在变量提升,但let和const声明的变量不存在变量提升
2.是否存在暂时性死区
只有let和const存在暂时性死区
3.是否允许重复声明变量
var允许重复声明变量,let和const在同一作用域不允许重复声明变量
4.是否存在块级作用域
var不存在块级作用域,let和const存在块级作用域
5.是否可以修改声明的变量
let和var可以修改,const声明一个只读的常量,一旦声明,常量的值就不能改变

ES6解构赋值

解构赋值就是从目标对象或者数组中提取自己想要的变量。
常见的几种方式:
1.默认值
2.交换变量
3.将剩余数组赋给一个变量
4.给新的变量名赋值

箭头函数与普通函数的区别

1.箭头函数是匿名函数,不能作为构造函数,不能使用new
2.箭头函数内没有arguments,可以展开运算符…解决
3.箭头函数的this始终指向父级上下文
4.箭头函数不能通过call(),apply(),bind()方法直接修改它的this指向
5.箭头函数没有原型属性

ES6中的类

ES6引入了class(类)这个概念,通过class关键字可以定义类。
注意项:
1.在类中声明方法的时候,千万不要给该方法加上function关键字
2.方法之间不要用逗号分隔,否则会报错

promise使用

Promise是异步编程的一种方案,解决了地狱回调的问题,是一种链式调动的方式
Promise 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
Promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。

Promise有三种状态
1.pending 初始状态
2.fulfilled 成功状态
3.rejected 失败状态
Promise 有以上三种状态,只有异步操作的结果可以决定当前是哪一种状态,其他任何操作都无法改变这个状态
而且Promise的状态一旦改变,就不会再变,任何时候都可以得到这个结果,状态不可以逆,只能由 pending变成fulfilled或者由pending变成rejected

Promise接受一个「函数」作为参数,该函数的两个参数分别是resolve和reject。这两个函数就是就是「回调函数」

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

then()方法: then 方法就是把原来的回调写法分离出来,在异步操作执行完后,用链式调用的方式执行回调函数。
catch()方法: 当执行 resolve 的回调(也就是上面 then 中的第一个参数)时,如果抛出异常了(代码出错了),那么也不会报错卡死 js,而是会进到这个 catch 方法中。
all()方法: Promise 的 all 方法提供了并行执行异步操作的能力,并且在所有异步操作执行完后才执行回调。

async和await

Async 和 await 是一种同步的写法,但还是异步的操作,两个内容还是必须同时去写才会生效不然的话也是不会好使
1.asayc的用法,它作为一个关键字放到函数前面,这样普通函数就变为了异步函数
2.异步async函数调用,跟普通函数的使用方式一样
3.异步async函数返回一个promise对象
4.async函数配合await关键字使用(阻塞代码往下执行)是异步方法,但是阻塞式的

优点:
1.方便级联调用
2.同步代码编写方式
3.多个参数传递
4.同步代码和异步代码可以一起编写
5.async和await是对promise的优化

使用场景:async主要处理异步操作

Generator函数

声明方法:在function和函数名之间加一个*,普通函数就会变为generator函数
特点:异步编程的一种解决方案,需要分段执行:配合yield使用
启动函数:next()

Es6中新的数据类型symbol

Symbol 值通过Symbol函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol类型。凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。

注意,Symbol函数前不能使用new命令,否则会报错。这是因为生成的 Symbol 是一个原始类型的值,不是对象。也就是说,由于Symbol 值不是对象,所以不能添加属性。基本上,它是一种类似于字符串的数据类型。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值