BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

TC39敲定ECMAScript 2018特性集

| 作者 Kevin Ball 关注 3 他的粉丝 ,译者 盖磊 关注 2 他的粉丝 发布于 2018年2月7日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT