js-es6新特性

105 阅读1分钟
  • 1、模板字符串${}引入变量

  • 2、let:解决var的问题:a.会被声明提前,打乱执行顺序;b.没有块级作用域,影响外部变量

  • 3、箭头函数:没有this,没有arguments,没有prototype,不能new,可以用5中的剩余参数

  • 4、for...of:可以遍历数字下标的东西,类数组都可以,而forEach不行;下标为字符串,选for..in

  • 5、参数增强:参数默认值、剩余参数rest、展开运算符

  • 6、解构赋值

  • 7、class语法糖:
    • 如何改造理解:
      • 用class{}包裹原构造函数+原型对象方法
      • 原构造函数名升级为整个class的名字,所有构造函数统一更名为"constructor“
      • 原型对象中的方法,不用再加prototype前缀,也不用=function,直接简写为: 方法名(){ ... ...}
    • 方法定义:直接放在class{}内的方法定义,其实还是保存在原型对象中的。
    • static静态属性:保存在构造函数对象身上,不会重复!
    • 继承:
      • 继承prototype属性(只有方法):class 子类型 extends 父类型{ ... }
      • 继承属性(调用构造函数):super()

  • 8、很难的一道题:
      (() => {
           {
               function f() { 'a' }
               f = 1
               f = 2
               function f() { 'b' }
               f = 3
           }
           console.log('f=', f)   // f=2
       })()

  • 9、React中的事件绑定与箭头函数
    • React 在为 DOM 绑定事件时会为其屏蔽 addEventListener 修改 this 的操作,在这个过程中也将函数的调用的方式从方法变成了非方法的形式,所以this 发生了改变。解决方案:1.利用箭头函数闭包this。2.使用bind 强绑 this。