ECMAScript 2018(ES2018)有哪些新功能?
原文链接:medium.com
在最新的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:
s
(dotAll
)flag for regular expressions- RegExp named capture groups
- RegExp Lookbehind Assertions
- RegExp Unicode Property Escapes
我特别挖掘了“RegEx命名捕获组”功能,因为它提高了可读性:
有关这些功能的更多信息可以在Mathias Bynens找到 – 这些建议背后的驱动力之一 – 他的博客: ECMAScript正则表达式越来越好!
其他新功能
最重要的是 模板文字调整 着陆:当使用标记模板文字时,对转义序列的限制被删除,从而允许像\ xerxes
。 在此调整之前会抛出一个错误,因为\ x
是十六进制转义的开始,而’erxes`不是有效的十六进制值。
**❓ 标记模板文字根据MDN:如果模板文字前面有表达式,则模板字符串称为“标记模板文字”。 在这种情况下,标记表达式(通常是函数)将使用已处理的模板文字进行调用,然后您可以在输出之前对其进行操作。
现在怎么办?
请注意,并非所有浏览器都能提供所有这些功能。 意思是他们是Stage-4意味着他们已经完成了,并且浏览器供应商应该实现它们(一些已经有,其他人正在进行中)
至于未来,我已经在期待JavaScript的未来发展方向. 就像 可选链接操作员 已经让我很兴奋了 ?
本文文字及图片出自 www.zcfy.cc
你也许感兴趣的:
- ECMAScript 2024新特性
- 【外评】JavaScript 变得很好
- 一长串(高级)JavaScript 问题及其解释
- 不存在的浏览器安全漏洞:PDF 中的 JavaScript
- Python 里的所有双下划线(dunder)方法、函数和属性
- 【程序员搞笑图片】JavaScript
- JavaScript 膨胀于 2024 年
- 解码为什么 JS 中的 0.6 + 0.3 = 0.89999999999999 以及如何解决?
- 用 JavaScript 实现的 17 个改变世界的方程式
- 【译文】Dropbox:我们如何将 JavaScript 打包程序的大小减少 33% 的
你对本文的反应是: