ECMAScript 2018 是 JavaScript 语言的最新标准,该标准中包含了一些新的特性和修改。本文将会深入地解释这些特性,为前端开发者们提供学习和指导。
Async Iterator 和 Generator
Async Iterator 和 Generator 是用于异步迭代的两个新标记。异步迭代器 (Async Iterator) 允许您进行异步迭代,在每个值 / 块上等待异步操作完成之后才继续处理。具体而言,给每次迭代都添加了异步方法,如 next 或 return,以表示异步值或异常:
-- -------------------- ---- ------- -- -------------- ----- ------------- - - ----- ------------------------- - ----- -------- ----- -------- - -- ------ ---------- - --- ----- ------ - -- -------------- - --------------- - ----- -- ---- --------- -----
Generator 是一个可以用于简单地迭代数据的函数,且可以在返回方法之后保留自己的状态和执行。Generator 函数在新标准中被增强了一些新特性,现在更加易于使用:
-- -------------------- ---- ------- -- ------------ --------- ----------- - --- ---- - -- ---- - -- ----- ----- -- ---- - ----- ----- ------ ----- - ------ ---- - ------ - - --- ------ - -- ------------ - --------------- -
Promise.prototype.finally
Promise.prototype.finally 方法可以在 Promise 错误处理的 return / catch 的后面代码块的运行结束后执行指定代码块,它总是返回 Promise 对象。这是一种彻底释放资源的方式,因为不管 Promise 成功或失败都会释放处理程序:
-- -------------------- ---- ------- -------- -------------- ------ --- ------------------------- ------- - -- ------- -- ------ --- - ------------- ------------ -- -------------------- ---------- -- ------------------- ----------- -- --------------------- -------
Rest / Spread Property
Rest / Spread 是两个新操作符,它们使我们可以轻松地分解对象和数组,并将它们分散到所需的位置:
-- -------------------- ---- ------- ----- - - - -- -- -- -- -- - -- ----- --- -------- - -- --------------- -- - ------------------ -- --- -- -- -- ----- --------- - --- -- --- ----- ---------- - --- -- --- ----- -------- - -------------- --------------- ---------------------- -- --- -- -- -- -- --
更好的正则表达式
在 ECMAScript 2018 中,正则表达式获得了一些新的特性,其中包括 s 修饰符,它可以使 . 表示任何字符,包括换行符。另外,正则表达式还支持名称捕获组,这使得命名的捕获组更容易识别:
const re = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/; const result = re.exec('2018-08-05'); console.log(result.groups.year); // 2018 console.log(result.groups.month); // 08 console.log(result.groups.day); // 05
总结
ECMAScript 2018 包含了许多新的特性和修改,本文深入地解释了异步迭代、Promise.prototype.finally、Rest / Spread 操作符以及更好的正则表达式等。学习这些新特性可以帮助前端开发者更加高效地使用 JavaScript 编写代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649f989f48841e9894bf3239