• ES6核心内容


    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015。

    【最常用的ES6特性】

      let , const , class , extends , super , arrow function , template string , destructuring , default , rest arguments 

    【let , const】

      这两个关键字的作用和var相似,都是用来声明变量的,但是略有不同

      【问题】

    var a="string";
    while(true){
        var a="world";
        console.log(a);
        break;
    }
    console.log(a);

      两次输出的结果都是 world ,这是因为ES5中只有全局作用域和函数作用域,没有局部作用域,在这里 while 中的a覆盖了外面的a的值。

      【解决】

      let为JS新增了块级作用域,let声明的变量,只在 let 命令所在的代码块中有效。

      const的作用是声明常量。

    【class , extends , super】

      这三个特性涉及到对象,接近于传统语言的写法,引入了Class的概念。使得对对象的描述更接近于面向对象的编程方式,更容易理解。

    class Animal{
        constructor(){
        this.type="animal";
        }
        says(say){
            console.log(this.type+" say "+say);
        }
    }
    let animal = new Animal();
    animal.says("hello");  //animal say hello
    class Dog extends Animal{
        constructor(){
        super();
        this.type = 'dog';
        }
    }
    let dog = new Dog();
    dog.says(" wang ");    //dog say wang

      这里用类class定义了一个Animal类,constructor中使用this定义了当前的实例对象。connstructor中定义的属性和方法是自身的,外面定义的方法和属性是共有的。

    Class之间能够通过extends实现继承,相较于ES5中的修改原型链要更方便和好理解。上边定义的Dog类,就继承了Animal类的所有属性和方法。

    super关键字,指代父类的实例(this对象)。子类必须在constructor方法中调用super方法,否则,新建子类实例会报错。这是因为子类没有自己的this对象,而是继承父类的this对象,然后进行加工。如果不调用super方法,子类就得不到this对象。

  • 相关阅读:
    微软一站式示例代码库 11月小结
    Linux服务器使用SSH的命令 [转]
    简明 Vim 练级攻略 [转]
    如何在Windows下使用LAPACK和ARPACK [转]
    使用setuptools自动安装python模块 [转]
    VS2010下GSL的配置 [转]
    poj3255 Roadblocks ***
    协方差矩阵的详细说明 [转]
    VC环境下LIB引用问题(LNK1104) [转]
    Dreamweaver CS5: "Configuration error"
  • 原文地址:https://www.cnblogs.com/controlms/p/7862662.html
Copyright © 2020-2023  润新知