ES8 与 ES9 新增方法总结(附代码)

引言

ES8 和 ES9 是 JavaScript 的两个重要版本,其中包含了许多新的语法和方法。本篇文章将介绍 ES8 和 ES9 新增的一些方法,并提供详细的示例代码来帮助我们更好地学习这些新特性。

ES8 新增方法

async / await

在 ES8 中,我们可以使用 asyncawait 关键字来更方便地处理异步操作。async 关键字可以用于定义一个异步函数,而 await 可以用于暂停异步函数的执行,直到 Promise 对象执行完成。

以下是一个使用 async / await 实现异步操作的示例代码:

----- -------- ----------- -
  --- -
    ----- -------- - ----- --------------------------------------
    ----- ---- - ----- ----------------
    ------------------
  - ----- ------- -
    ---------------------
  -
-

上述代码中,我们使用 async 关键字定义了一个异步函数 fetchData,在其中使用了 await 来等待 fetchjson 方法返回结果。当 Promise 成功执行完成时,我们使用 console.log 将结果输出到控制台。当 Promise 抛出错误时,我们使用 console.error 输出错误信息。

Object.values() 和 Object.entries()

在 ES8 中,我们可以使用 Object.values()Object.entries() 方法来获取对象的值和键值对。Object.values() 返回一个包含对象的所有值的数组,而 Object.entries() 返回一个包含对象的键值对的数组。

以下是一个使用 Object.values() 方法获取对象值的示例代码:

----- --- - - -- -- -- -- -- - --
----- ------ - -------------------
-------------------- -- --- -- --

以下是一个使用 Object.entries() 方法获取对象键值对的示例代码:

----- --- - - -- -- -- -- -- - --
----- ------- - --------------------
--------------------- -- ------ --- ----- --- ----- ---

字符串填充方法 padStart() 和 padEnd()

在 ES8 中,我们可以使用 padStart()padEnd() 方法来实现字符串的填充。这两个方法都接受两个参数:要填充到的字符长度和要填充的字符串。

以下是一个使用 padStart()padEnd() 方法进行字符串填充的示例代码:

----- --- - ------

--------------------------- ------ -- -------
------------------------- ------ -- -------

上述代码中,我们使用 padStart() 方法将字符串填充到了 5 个字符长度,并使用 '0' 来填充。当字符串长度小于 5 时,会在前面添加所需数量的 '0'。使用 padEnd() 同理,只是在字符串末尾填充。

ES9 新增方法

Promise.prototype.finally()

在 ES9 中,我们可以使用 Promise.prototype.finally() 方法来在 Promise 结束后执行一段代码。该方法不管 Promise 成功还是失败,都会在 Promise 结束之后执行。

以下是一个使用 Promise.prototype.finally() 方法结束 Promise 的示例代码:

-------------------------------------
  -------------- -- ----------------
  ---------- -- ------------------
  ------------ -- ---------------------
  ----------- -- ---------------------

以上代码中,我们使用 finally() 方法来输出 '请求结束',无论请求成功还是失败。

Rest / Spread 属性

在 ES9 中,我们可以使用 Rest 和 Spread 属性来更方便地管理对象和数组。Rest 属性可以将一个对象或数组解构为单独的变量,而 Spread 属性则可以将多个变量合并为一个对象或数组。

以下是一个使用 Rest 属性解构对象的示例代码:

----- --- - - -- -- -- -- -- - --
----- - -- ------- - - ----

--------------- -- -
------------------ -- - -- -- -- - -

以上代码中,我们使用 Rest 属性将对象 obj 解构成两个变量 xrest,其中 xobj.x 的值,rest 则包含了剩余的属性。

以下是一个使用 Spread 属性合并数组的示例代码:

----- ---- - --- -- ---
----- ---- - --- -- ---
----- ---- - --------- ---------

------------------ -- --- -- -- -- -- --

以上代码中,我们使用 Spread 属性将两个数组 arr1arr2 合并成一个数组 arr3

结论

本文介绍了 ES8 和 ES9 中新增的一些方法,包括 async / awaitObject.values()Object.entries()padStart()padEnd()Promise.prototype.finally()、Rest 和 Spread 属性。这些新特性可以帮助开发者更方便地管理对象和数组,并更好地处理异步操作。希望这篇文章对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/673475690bc820c5824939f0