JavaScript ES9也被称为ECMAScript 2018,是ECMAScript标准第九版的其中一部分,引入了几个新特性和语言功能,为前端开发者提供了更加便捷和高效的编程工具。在本文中,将对ES9的新特性进行详细介绍和解释。
Async Iteration
在ES9中,加入了异步迭代器(Async Iteration),它能像同步迭代器一样迭代一个数据集,但该数据集中的每个元素都可以异步地从一个Promise生成器中获取。这个特性可以大力简化代码和减轻程序员的负担。
示例代码:
----- ------------- - - ------------------------ - ------ - -- -- ------ - -- ------- - -- - ------ ----------------- ------ --------- ----- ----- --- - ------ ----------------- ----- ---- --- - -- - -- ------ ---------- - --- ----- ------ --- -- -------------- - ----------------- - -----
运行上述代码将输出:
- - -
Promise.finally()
Promise.finally()
方法是一个用于在Promise结束时运行的回调函数,无论Promise状态为fulfilled
还是rejected
。该方法可以将一个回调函数附加到一个Promise上,等待Promise结束后,无论Promise是否成功,都可以执行相应的回调。
示例代码:
-------- ----------------- - ------ ------------------------------------------- -------------- -- ---------------- ---------- -- - ------------------ -- ------------ -- - --------------------- -- ----------- -- - -------------------------- ------- ------------ --- - --------------------------- -------- -- - -------------------------- ------------ -- ------------ -- - --------------------- ---
Rest/Spread Properties
ES9中,javascript对象的展开语法可以支持其余的属来捕获到一个变量中,或者展开控另外的对象。这里的“其余”属性指除了提供其他的属性之外的所有对象属性,与之相对的,展开属性指的是包含了所有属性的新对象。
示例代码:
----- - -- ------- - - - -- -- -- -- -- - -- --------------- -- - ------------------ -- - -- -- -- - - ----- - - - -- -- -- -- -- - -- ----- - - - ----- -- - -- --------------- -- - -- -- -- -- -- -- -- - -
Promise.prototype.finally()
Promise.prototype.finally()
方法也是一个用于在Promise结束时运行的回调函数,但该方法可以将一个回调函数附加到一个Promise实例上,以便在其链式调用进程中被调用。与Promise.finally()方法不同的是,它返回的是Promise对象而不是回调函数。
示例代码:
------------------ -------- -- - ----- --- -------------- -- --------- -- -- ------------ -- - -------------------- -- - -- ----------- -- - -------------------- ---- -- ------- - --- ------------------ -------- -- - ----- --- -------------- -- --------- -- -- ----------- -- - -------------------- ---- -- ------- - -- ------------ -- - -------------------- -- - ---
RegExp Unicode Property Escapes
ES9引入了 RegExp
中的Unicode属性转义,用于在正则表达式文本中引用Unicode属性字符范围。使用Unicode属性转义时,您可以在正则表达式中使用Unicode编号以检索具有特定属性的字符类别(例如,汉字的所有特定指定字符的范围)。
示例代码:
--- ----- - -------------------- ---------------------------------- ------ ------------------------------- -------
Asynchronous Generators
ES9引入了异步生成器(Asynchronous Generators)对象,它是由async function
关键字定义的生成器。
示例代码:
----- --------- --------------- - --- - - -- ----- ------ - ----- ----- --- ----------------- -- -------------- - - ------ -- -- - ----- -- - ---------------- ----------------- ----------- -- - ----- ------ ------ - - ----------------- ----------- -- - ----- ------ ------ - - ----------------- ----------- -- - ----- ------ ------ - - -----
结论
ES9为前端开发者提供了一组新的javascript语言工具,用于快捷、高效地完成日常工作。虽然这些工具是javascript语言的一小部分,但它们可能会大大简化编写可读性更强且可重复使用的代码的任务。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6715f1bcad1e889fe2199fa1