为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript: ECMAScript 2018(ES2018)有哪些新功能?

标签:
JavaScript

在最新的TC39会议上,选择了将进入“ECMAScript®2018语言规范”(ES2018)的新功能。 自ES2017 合并以来已达到第4阶段的所有提案都已被选中。 这篇文章让我们快速了解了进入ES2018的功能。

Stage-4 TC39委员会有一个5阶段的过程,从第0阶段到第4阶段,通过它开发新的语言功能。 第四阶段是“完成”阶段。GitHub上提供了第4阶段提案列表

对象 Rest/Spread 属性

在解构对象时, 对象 Rest 属性 允许您将对象的剩余属性收集到新对象上。 把它想象成吸引所有剩菜的神奇磁铁。

我自己经常使用这个,特别是在React(Native)上下文中,我从this.props中获取某些值供内部使用,然后通过再次传播将所有其他道具转发给返回的子组件。

另外,如果你稍微改变你的思维逻辑,对象休息属性为你提供了一种以不可变的方式, 从对象中删除属性的好方法.

异步迭代

使用 异步迭代 我们得到异步迭代器和异步迭代。 异步迭代器就像常规迭代器一样,除了它们的next()方法之外,它返回一个{value,done}对的promise。 为了使用异步迭代,我们现在可以使用带有for ...ofloops的await关键字。

Promise.prototype.finally()

Promise.prototype.finally()最终确定整个promises实现,允许你注册一个在一个promise被解决(被满足或被拒绝)时被调用的回调。

一个典型的用例是在fetch()请求之后隐藏一个微调器:而不是复制最后一个.then().catch()中的逻辑,现在可以将它放在.finally()

RegExp相关功能

共有4个“RegExp”相关提案进入ES2018:

我特别挖掘了“RegEx命名捕获组”功能,因为它提高了可读性:

有关这些功能的更多信息可以在Mathias Bynens找到 - 这些建议背后的驱动力之一 - 他的博客: ECMAScript正则表达式越来越好!

其他新功能

最重要的是 模板文字调整 着陆:当使用标记模板文字时,对转义序列的限制被删除,从而允许像\ xerxes。 在此调整之前会抛出一个错误,因为\ x是十六进制转义的开始,而'erxes`不是有效的十六进制值。

** 标记模板文字根据MDN:如果模板文字前面有表达式,则模板字符串称为“标记模板文字”。 在这种情况下,标记表达式(通常是函数)将使用已处理的模板文字进行调用,然后您可以在输出之前对其进行操作。

现在怎么办?

请注意,并非所有浏览器都能提供所有这些功能。 意思是他们是Stage-4意味着他们已经完成了,并且浏览器供应商应该实现它们(一些已经有,其他人正在进行中)

至于未来,我已经在期待JavaScript的未来发展方向. 就像 可选链接操作员 已经让我很兴奋了

The examples embedded in this post are part of a talk on ESNext named “What’s next for JavaScript?”, which I recently gave at a Fronteers België meetup. I’m currently still in the process of preparing the slides for publication. I’m available for bringing this talk at your meetup/conference.

译文出处

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消