JavaScript: ECMAScript 2018(ES2018)有哪些新功能?
在最新的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.
共同学习,写下你的评论
评论加载中...
作者其他优质文章