zoukankan      html  css  js  c++  java
  • ES6优缺点

    看了一篇ES6语法示例,觉得还可以

    here

    ES6是新一版的标准,对语言有扩展,添加了新的属性与方法。这一标准虽然现在还要用babel来做浏览器支持(将ES6编译成ES5才能被浏览器支持),但是未来浏览器会逐渐对其有原生的支持。到时候JS语法会发生更新,我们可以使用更简单的方式编写代码,使得编程更容易。

    语法糖:糖衣语法,并不改变语言的功能,只是使编程更简单。比如C语言里用a[i]表示*(a+i)

    ES6就是用了较多语法糖,这也就意味着,ES6的一些新特性并不是真的“新”,只是试图简化语法而已。

    下面是ES6的一些新特性/优点:

    1、类的封装

    class Project {
      constructor(name) { //构造方法
        this.name = name;
      }
     
      start() { //成员方法,可以不用function声明
        return "Project " + this.name + " starting";
      }
    }
     
    var project = new Project("Journal");
    project.start(); // "Project Journal starting"

    这个类中定义的所有方法都被加入这个类的原型prototype中

    2、继承

    现有的JS语法中,继承是通过prototype实现的

    ES6中:

    class WebProject extends Project {
      constructor(name, technologies) {
        super(name);
        this.technologies = technologies;
      }
     
      info() {
        return this.name + " uses " + arrayToString(this.technology);
      }
    }
     
    function arrayToString(param) {
      // ... some implementation
    }
     
    var webJournal = new WebProject("FrontEnd Journal", "javascript");
    webJournal.start(); // "FrontEnd Journal starting"
    webJournal.info(); // "FrontEnd Journal uses javascript"

    3、模块化module

    在js中,为了实现模块化编程,可以使用插件工具seajs等,seajs符合CMD规范,CMD规范是在commonJS(服务端模块化规范)基础上的

    ES6中:

    // point.js
    module "point" {
     export class Point {
     constructor (x, y) {
      public x = x;
      public y = y;
     }
     }
    }
      
    // myapp.js
    //声明引用的模块
    module point from "/point.js";
    //这里可以看出,尽管声明了引用的模块,还是可以通过指定需要的部分进行导入
    import Point from "point";
      
    var origin = new Point(0, 0);
    console.log(origin);

    4、let和const

    for (let i=0;i<2;i++)console.log(i);//输出: 0,1
    console.log(i);//输出:undefined,严格模式下会报错

    用let声明的变量只在代码块中可见

    var是 函数作用域,而let是 块级作用域

    const是创建常量,一旦被创建,值就不可改变

    还有一些其他特性

    一篇很好的ES6介绍

    很多人说ES6很好用,都会觉得“早这样该多好”

    它的缺点就是 浏览器还没有完全支持

  • 相关阅读:
    ServletContext
    PS切图
    session实战案例
    Array Destruction
    Session详解
    No More Inversions 全网最详细 回文序列的逆序对
    Sum of Paths (DP、预处理)
    cookie详解
    web的状态管理
    简单最大流/最小割复习
  • 原文地址:https://www.cnblogs.com/dll-ft/p/5813684.html
Copyright © 2011-2022 走看看