你应该知道的 6 个 ES9 功能:Object Rest 和 Spread、承诺.allSettled() 和更多
ES9 (ECMAScript 2018)是 JavaScript 的最新版本,它引入了一些新的功能和语法,以帮助开发人员更有效地编写代码。在本文中,我们将介绍 ES9 中的 6 个功能,包括 Object Rest 和 Spread、承诺.allSettled(),正则表达式命名捕获组和更多。
- Object Rest 和 Spread
Object Rest 和 Spread 是一个新的语法,在 ES9 中引入。它允许您轻松地从一个对象中获取一些属性,并将其余的属性放入一个新的对象中。例如:
----- ------ - - ---------- ------- --------- ------ ---- --- ------ --------------------- -- ----- - ---------- --------- ------- - - ------- ----------------------- -- ------ ---------------------- -- ----- ------------------ -- - ---- --- ------ --------------------- -
在上面的代码中,我们使用 Object Rest 和 Spread 语法从 person
对象中获取 firstName
和 lastName
属性,并将其余的属性放入 rest
对象中。
- 承诺.allSettled()
Promise.allSettled()
是一个新的 Promise 方法,在 ES9 中引入。它接受一个 Promise 数组,并返回一个新的 Promise,该 Promise 将在所有 Promise 完成或拒绝后解决。与 Promise.all()
不同,Promise.allSettled()
不会在任何 Promise 拒绝时拒绝。例如:
----- -------- - ------------------------ ---- ----- -------- - --------------------- ---- ----- -------- - ------------------------ ---- ----------------------------- --------- ---------- ------------- -- ---------------------- -- ------- -- - -- - ------- ------------ ------ -------- -- -- -- - ------- ----------- ------- ------ -- -- -- - ------- ------------ ------ -------- -- - -- -
在上面的代码中,我们使用 Promise.allSettled()
方法来等待所有 Promise 完成或拒绝。结果数组包含每个 Promise 的状态和结果或拒绝理由。
- 正则表达式命名捕获组
正则表达式命名捕获组是一个新的语法,在 ES9 中引入。它允许您使用命名捕获组来捕获匹配的子字符串。例如:
----- ---- - ----- --- ----------------------- ----- ----- - --------------------- --------------------- ----- ----- - ------------------ ------------------------------- -- ----- ---- -------------------------------- -- ---------------------
在上面的代码中,我们使用正则表达式命名捕获组来捕获 text
变量中的名称和电子邮件地址。
- Array.prototype.flat()
Array.prototype.flat()
是一个新的数组方法,在 ES9 中引入。它允许您将多维数组扁平化为单个数组。例如:
----- --- - --- -- --- -- --- ----- ----- --------- - ------------ ----------------------- -- --- -- -- -- -- --
在上面的代码中,我们使用 Array.prototype.flat()
方法将 arr
数组扁平化为单个数组。
- String.prototype.trimStart() 和 String.prototype.trimEnd()
String.prototype.trimStart()
和 String.prototype.trimEnd()
是两个新的字符串方法,在 ES9 中引入。它们允许您从字符串的开头或结尾删除空格。例如:
----- ---- - - ------ ------ -- ------------------------------ -- ------- ------ - ---------------------------- -- - ------ -------
在上面的代码中,我们使用 String.prototype.trimStart()
和 String.prototype.trimEnd()
方法从 text
字符串的开头和结尾删除空格。
- Async / Await
Async / Await 是一种新的异步编程语法,在 ES9 中引入。它允许您使用类似于同步代码的语法编写异步代码。例如:
----- -------- ----------- - ----- -------- - ----- ------------------------------------------------------ ----- ---- - ----- ---------------- ------ ----- - --------------------- -- -------------------
在上面的代码中,我们使用 Async / Await 语法来异步获取数据并打印结果。
总结
在本文中,我们介绍了 ES9 中的 6 个新功能,包括 Object Rest 和 Spread、承诺.allSettled()、正则表达式命名捕获组、Array.prototype.flat()、String.prototype.trimStart() 和 String.prototype.trimEnd()、Async / Await。这些新功能可以帮助开发人员更有效地编写 JavaScript 代码。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/662b643fd3423812e48f0878