欢迎来到es6 in depth系列! 这个系列我们将探索es6-将要到来的js新版本. es6包含了许多让js更强力更有表达性的新特性, 我们讲在系列中一一深入. 但在我们开始前, 也许可以花一些时间来说说es6是什么和你可以期待es6能干什么.

ESMAScript的研究带来了什么?

javascript编程语言是基于ECMA标准的(就像html是基于W3C), 叫做EMACScript. ECMAScript在这里定义了:

  • 语法 - parse规则, 关键字, 语句, 声明, 操作等.
  • 类型 - 布尔, 数字, 字符串, 对象等.
  • prototype和继承
  • 内置对象和函数的标准api - JSON,Math,Array方法, 对象内置方法等

而没有定义任何HTML,CSS或者Web API, 比如DOM. 他们被分开维护. ECMAScript 覆盖的标准是: 不仅存在于浏览器切能用于非浏览器环境的js比如node.js 这种方面的js.

新标准

上周, ECMAScript版本6的最终草案被提交到了Ecma General Assembly来review了. 这意味着什么?

这意味着这个夏天, 我们会有一个新的Javascript的语言标准了.

这是一个大新闻. 不是每天都会发布一个新的js版本的. 上一个版本, es5, 是在2009年发布的. 之后es标准委员会就一直在进行es6的工作了.

es6的主要更新在语法上. 同时你之前的js代码也能运行. es6的设计最大程度得与现有代码契合. 其实已经有很多浏览器支持各种各样的es特性, 并且在继续实现更多特性. 这代表你的js代码已经可以在有用es6特性的浏览器上运行啦! 如果你至今没有遇到es6和之前版本的兼容问题, 那可能以后也不会有哦.

数到6

之前的的ECMAScript标准版本号是 1 2 3 5.

版本4怎么了呢? 版本4曾经被规划过 – 而且已经完成了很多版本4的工作 – 然后最终因为改动太大被废弃了. (比如他曾经设计了复杂的接口类型的内置静态类型属性)

es4是有争议的. 当标准委员会最终停止es4的工作, 委员会成员赞成发布一个相对稳健的es5版本并开发稳定的新特性. 这个明确的, 商讨过的协议被称为 “harmony”. 这也是为什么es5的说明会有这样的话:

ECMAScript 是一个充满活力的语言, 并且语言的进化还未完成.今后的版本会有显著的技术提升.

这句话可以被看成一种保证.

承诺实现

2009年更新的es5语言有了Object.create(),Object.defineProperty(),getterssetter,strict mode, 和JSON对象. 我们已经使用了所有这些特性, 我很喜欢es5对语言做的事. 但还很难说这让我写js代码的方式有很大的变化. 对我来说最大的发明是新的数组方法: .map(), .filter()等.

然后呢, es6很不同. 他是多年“harmony”工作的结果. 他是一个新语法特性的宝藏, 是js有史以来最大的更新. 新特性包含了受欢迎的方便性, 比如箭头函数和简单的字符串插值, 和烧脑的新概念, 比如代理和生成器.

es6会改变你编写js的方式.

这个系列会通过深入es6提供给程序员的新特性来给你看es6的面貌.

我们会从经典的‘缺失的特性’(我们早就希望在js特性里出现的特性)来开始说. 所以下周的主题是es6的iterator和新的for-of循环.


es in depth 系列 目录 原文地址