es6 in depth 介绍
欢迎来到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()
,getters
和setter
,strict mode
, 和JSON
对象. 我们已经使用了所有这些特性, 我很喜欢es5对语言做的事. 但还很难说这让我写js代码的方式有很大的变化. 对我来说最大的发明是新的数组方法: .map()
, .filter()
等.
然后呢, es6很不同. 他是多年“harmony”工作的结果. 他是一个新语法特性的宝藏, 是js有史以来最大的更新. 新特性包含了受欢迎的方便性, 比如箭头函数和简单的字符串插值, 和烧脑的新概念, 比如代理和生成器.
es6会改变你编写js的方式.
这个系列会通过深入es6提供给程序员的新特性来给你看es6的面貌.
我们会从经典的‘缺失的特性’(我们早就希望在js特性里出现的特性)来开始说. 所以下周的主题是es6的iterator
和新的for-of
循环.
(本文完)
如果你觉得本文对你有帮助, 你可以请我喝一杯咖啡
本文遵循cc协议
你可以在注明出处和非商用的前提下任意复制及演绎