携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天,点击查看活动详情
本期我们继续学习ES6新特性!
- 对象字面量增强
- 当在对象中调用外部的变量时的写法:bar:bar;ES6中可以直接写bar
- 当在对象中书写函数时,可以省略:function直接写函数名(){} (该写法中this的指向依然是对象本身)
- 在对象内部可以直接书写动态的属性名,书写方式:[表达式]:值。称为计算属性名
- 对象扩展方法:Object.assign(object,object)(第一个是目标对象,第二个是源对象)
- 将多个源对象中的属性复制到一个目标对象中。目标对象存在源对象不存在的会保留;目标对象存在源对象的也存在会覆盖
- 对象扩展方法:Object.is
- 判断两个对象是否相等:
Object.is(+0,-0)==>false;Object.is(NaN,NaN)==>true;+0 === -0 ==>true;NaN=== NaN==>false
- 判断两个对象是否相等:
- Class类:新的定义方式
- 之前使用构造函数和原型的方法创建
- 现在使用Class类来定义
- 实例方法和静态方法
- 实例成员:需要通过类型的构造函数生成的实例对象进行调用的
- 静态成员:直接通过类型本身进行添加和调用,属于构造函数的成员;可以直接在class内部直接使用static添加,需要使用类型进行调用;静态方法的this指向的不是方法本身,而是类型自己
- 类的继承extends
- 儿子也有自己的构造函数,使用父类中的构造函数借助super调用
- 儿子也有自己的构造函数,使用父类中的构造函数借助super调用
- Set数据结构(或理解为集合)
- 要求:值不能重复,每一个值都需要是唯一的
- 定义:const s = new Set()
- 添加数据:s.add(1).add(2).add(3).add(4).add(2) 可以连续添加多组数据,但是最后的2因为重复了,所以不会被添加
- 遍历:for(let i of s){console.log(i)}
- 长度:s.size
- 判断数组中是否包含这一项:s.has(4),输出结果为布尔值
- 删除:s.delete(4)输出的结果为布尔值
- 清空:s.clear()
- 最常用于给数组进行元素去重
- 如果要转为数组可以使用Array.from方法
- 另一种接种...展开操作符
本期内容就到这里啦!