JavaScript ES9:新特性快速入门指南

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