2018年2月6日星期二

TC39 敲定 ECMAScript 2018 特性集


Linuxeden 开源社区 --

1 月 23 日至 25 日的 TC39 会议敲定了 ES2018 的特性集。ES2018 是对 ECMAScript 语言规范 的最新修订。这次更新中新添加的特性包括异步迭代器、用于对象解构(Object Destructuring)和对象字面量(Object Literal)的 restspread 操作符,并大幅改进了正则表达式。此外,还对 Promise 和模板字面量(Template Literal)做了进一步改进。

新敲定的 Asynchronous Iteration 功能,原生支持在 JavaScript 中对异步获取的数据做迭代。异步获取方式包括 Node.js 中的文件读取、浏览器中的 WebSocket 等。该特性在扩展了已有的生成器和循环功能的同时,在语言中引入了两个新的关键字,asyncawait。在 Hackernoon 的一篇帖子 中,Mostafa Gaafar 解释了新语法的价值所在:

async/await 无疑是 JavaScipt 在过去数年中添加的最具革命性的特性之一。该特性可使开发人员认识到一个语法混乱的 Promise 是什么样的,并为此提供了直观的替代解决方案。

Asynchronous Iteration 可使用 Babel 做源码到源码的编译(Transpilable),并在 Node.js 7.6 之后的版本、Chrome、Firefox 和 Safari 技术预览版中原生提供。

新规范中还添加了支持对象字面量的 spread/rest 语法 。自 ES2015 以来,在数组上就已经支持该语法。此次更新是对该语法的一个泛化。在 Google 开发者博客上,Mathias Bynens 发表了一篇 介绍性文章 。文章解释说“在很多情况下,spread 属性是 Object.assign() 的一种更优雅的替代实现”。该特性同样可使用 Babel 做源码到源码的编译,并在 Node 8.6 以后的版本、Chrome、Firefox 和 Safari 技术预览版中提供原生支持。

对于已有的功能而言,新规范中的最大更改是 对正则表达式的改进 。ECMAScript 2018 为正则表达式添加了一系列新特性。这些特性已经在其它一些语言中存在,但是尚未在 JavaScript 中得到支持。其中包括 DOTALL 模式、后行断言(Lookbehind Assertions)、命名捕获组(named capture group)和 Unicode 属性转义(Property Escape)等。

最后要介绍的 2018 规范中的更改,就是 对模板字面量功能的修改 ,允许了一些以前是非法的字符序列。如果开发人员想要对最终敲定的提案眼见为实,可 从 GitHub 中检出 TC39 的最终建议列表 ,或是跟踪 TC39 之前 所有进入正式流程的提案

查看英文原文: TC39 Finalizes Feature Set for ECMAScript 2018

转自 http://ift.tt/2GVAMgL

The post TC39 敲定 ECMAScript 2018 特性集 appeared first on Linuxeden开源社区.

http://ift.tt/2sd6ran

没有评论:

发表评论