ES6 新特性

ES6 也就是 ECMAScript 6 是下一代 JavaScript 的语言标准,目前该标准还在不断完善中,但是基 本的新特性已经全部敲定。预计将在 2015 年年中正式推行,虽然还未正式推行,但是借由 Google 推出 的 google/traceur-compiler 编译器,可以将使用 ES6 语法的 JavaScript 编译成 ES5 版本的 JavaScript 代码,进而在主流浏览器中都可以正常运行。因此目前很多项目已经开始使用 ES6 的语法来 进行日常的开发了,轻卡 web 版的开发使用了 Ember CLI,它们默认提供了对 ES6 的支持,因此在 开发的过程中也使用到了一些 ES6 的特性。简单的说,ES6 标准的推行,使得 JavaScript 这个传说中 用了 10 天设计出来的语言不再那么玩具化,越来越可以承担一些大型的、工业化的项目的开发了。

简单的说说 ES6 中加入的一些新特性

类的支持

虽然 class 在之前的 JavaScript 中一直是保留字,但是这家伙一直不能用啊,现在 class 关键字 终于是派上用场了。以后我们可以这样写 JavaScript 了:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  // instance method
  sayHello() {
    console.log('Hello, world');
  }
}

参数的默认值

这个其他语言看了可能 呵呵 了,但是 JavaScript 以前就是不支持啊!导致我们还得自己在方法里面再 写判断的。

function sayHello(name = 'Teddy') {
  console.log("Hello, I'm " + name);
}

模块的支持

现在可以把文件当成模块 export 然后在别的需要它的文件中 import 了,这个估计其他语言看了要继续 呵呵 了。。。

let, const 关键字

以前定义变量都是加上 var,现在多了 letconst 这两个关键字,let 的用法我还不是很了解, const 很明了,就是定义常量了,可是为什么还是没有 private 呢。。。

上面介绍的几个是我在这次开发中用到了的几个让我觉得终于来了的特性,除此之外还加入了很多语法糖以及新特性, 由于使用的不多还不是很了解,这里就不一一介绍了。阮一峰大师写了一本关于 ES6 介绍的书,在 GitBook 上有开源的版本,有兴趣的同学可以看看。总的来说,ES6 让 JavaScript 变得越来越棒了,期待早日全面 普及到各类浏览器,还有就是希望各家浏览器别再根据这个再加自己的标准了,是时候统一了。