ES6总结

现在总结一下ES6的一些特性

let和const

let和const是ES6 新增的声明命令

  • let声明变量,不存在变量提升,是块级作用域,在作用域里不可以重复声明,在声明时可以不赋值,并且值是可以修改的
  • const声明常量,不存在变量提升,是块级作用域,在作用域里不可以重复声明,在声明时必须要赋值,并且值不可以修改

let和const还存在一个暂时性死区,只要块级作用域内存在let或const命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。

对比var

  • var声明变量,存在变量提升,是函数作用域,可以重复声明,可以不赋值,并且值是可以修改的。

call、apply、bind

  • 相同点:都能改变this指向
  • 不同点:
    - 传参方式不同:call和bind以枚举的方式传参,apply以数组的方式传参
    - 调用方式不同:call和apply立即调用,bind返回一个函数体,需要手动调用

原型链

如果实例本身没有方法就向上找
实例=>构造函数原型=>对象原型=>null

Class类

通过constructor创建构造函数,与普通的构造函数相似,它也可以在原型上添加方法,还可以直接在constructor后面添加方法
Class还可以通过extends让子类继承父类的属性和方法

箭头函数

箭头函数没有this指向,里面的this指向它的父级。如果有且只有一个参数,括号可以省略,如果执行的函数只有一句花括号可以省略,return也可以省略

set、map构造函数

set是一个构造函数,生成set数据类型,具有自动去重的作用,还可以对它进行增删查的操作:add(添加的内容)、delete(要删除的内容)、has(查找的内容)
map是一个构造函数,针对对象格式的数组,可以对它进行增删改查的操作:set(增加或修改的key,添加或修改的value)、delete(删除的key)、get(查找的key)

深拷贝、浅拷贝

浅拷贝值拷贝一层,浅拷贝过后的变量和原变量进行修改后,都会对对方产生影响。
深拷贝拷贝每一层,深拷贝过后的变量和原变量修改后,,不会对对方产生影响。我们可以通过Object.assgin(容器,拷贝对象)进行深拷贝。除此以外还可以使用JSON的方法来进行深拷贝,转换成字符串格式,再将它转换成对象格式就可以了,但是这种做法存在一定的弊端,如果使用时间戳了,会产生一定的误差

symbol数据类型

它属于值类型数据,代表唯一的值,用于存放关键数据,或储存服务器数据。我们可以使用for()指定一个symbol空间,来自同一来源的symbol数据才会相等。我们还可以通过keyFor()查询symbol数据,不过这只是针对用for()创建的symbol数据

Promise构造函数

Promise是ES6新增的构造函数,它是用于创建promise实例对象,代表将来要发生的事情,用于处理异步操作。Promise本身是同步的,但是里面then方法和catch方法是异步的。我们可以使用Promise解决回调地狱(异步函数深层嵌套)的问题

注意:

嘿,说你呢,这里还差很多东西,快来补充

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值