ES6新特性(三) | 一起学系列

63 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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类来定义 image.png image.png
  • 实例方法和静态方法
    • 实例成员:需要通过类型的构造函数生成的实例对象进行调用的
    • 静态成员:直接通过类型本身进行添加和调用,属于构造函数的成员;可以直接在class内部直接使用static添加,需要使用类型进行调用;静态方法的this指向的不是方法本身,而是类型自己 image.png
  • 类的继承extends
    • 儿子也有自己的构造函数,使用父类中的构造函数借助super调用 image.png
  • 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()
    • 最常用于给数组进行元素去重 image.png
    • 如果要转为数组可以使用Array.from方法 image.png
    • 另一种接种...展开操作符 image.png

本期内容就到这里啦!