js、ES6新语法、递归、解构、展开

188 阅读2分钟

js高级第三天

instanceof

判断数据对象的构造函数是否是某个构造函数

判断对象是否是某个构造函数创建的

es6 class

作用:定义类型,功能类似于构造函数

成员

  • 构造器:constructor

    • 初始化成员
  • 方法

使用:new调用

  • new就是调用class类的constructor

class实现继承

  • 关键字:extends

    • class 类 extends 父类 {}
    • 子类也会拥有父类中定义的成员,同时也可以访问父的类的原型
  • 复用父类的构造器

    • 在使用this之前一定要调用super

tabs案例

递归

解决:嵌套次数不确定的问题

递归一定要有结束条件

递归写之前要使用化归思想,总结递归实现过程

画图理解递归的实现过程

案例:递归生成目录

ES6新语法

对象简写

  • 如果一个对象的属性和值同名,那么只需要写一个

  • let obj = {name,age}

    • let obj = {name:name,age:age}
  • 在对象中直接写方法

    • let obj = {say(){}}

解构

  • 数组解构

    • 从数组是提取出元素

    • 数组解构需要使用[]

    • let [a,b] = arr

      • 从数组解构出前两个值,分别赋值给a,b
  • 对象解构

    • 从对象中解构属性所对应的值
    • 对象解构使用{}
    • let {name,age} = obj

展开运算符

  • 展开

    • 可以展开数组,将数组的元素展开为一个一个的元素
  • 剩余运算符

    • 从数组中取出剩余的值

      • let [a,...other] = arr
    • 从对象中取出剩余的属性

      • let {name,...other} = obj

Set去重

  • new Set(数组)

  • 返回一个Set对象

    • let temp = [...new Set(arr)]

闭包

解决的问题

  • 解决在函数外部使用函数内部声明的成员
  • 提升变量的安全性

实现方式

  • 外部函数中有内部函数,内部函数访问外部函数中定义的成员,返回内部函数