美文网首页
ES6用法小结

ES6用法小结

作者: 追风的云月 | 来源:发表于2018-02-05 09:30 被阅读0次

    1.let和const

    • 都具有块级作用域
    • const定义的值不可变

    2.变量的解构赋值

    • 按一定的模式从数组和对象、字符串中提取值
    • 赋值时可以指定默认值

    3.字符串模板

    4.数组扩展用法

    • ...是扩展运算符,将数组转为用逗号分隔的参数序列
    • 抛弃apply来转换数组为参数序列的方法
    • 复制数组 arr_new=[...arr_old]
    • 合并数组 [1, 2, ...more]
    • 将字符串转为真正的数组 [...'hello'] // [ "h", "e", "l", "l", "o" ]
    • Array.form() 将类数组和可遍历对象(set和map)转为数组

    5.对象扩展用法

    • 可以在对象中直接写入变量和函数,作为对象的属性和方法
    • 对象中的方法可以简写
      const o = {
            method() {
              return "Hello!";
            }
      };
    
    • Object.is() 比较两个值是否严格相等
    • Object.assign 用于对象合并 方法的第一个参数是目标对象,后面的参数都是源对象;这种拷贝方式是浅拷贝,如果有引用值,那么拷贝的只是引用
    • Object.values(),Object.entries()

    super关键字用法

    class B extends A {
        constructor(){
            super()
        }
        test(){
            super.a_test()
        }
    }
    

    建立class时,当且仅当“使用了extends关键字并指定了constructor函数”,super关键字必须以super([arg1[, arg2... argN]])的形式使用一次。此时super([arg1[, arg2... argN]])相当于创建了一个对象,且以该对象为context调用extends关键字指示的函数--A(以new的形式),随后这个对象成为constructor函数的context。因此super([arg1[, arg2... argN]])必须出现在constructor函数内的第一个this关键字之前,否则会报“this is not defined”的ReferenceError。这段解释转自知乎-长波
    当在B语句块内的test函数中使用super时,super表示该函数B的[[prototype]],也就是B的原型对象,本例中即A。

    相关文章

      网友评论

          本文标题:ES6用法小结

          本文链接:https://www.haomeiwen.com/subject/pksllxtx.html