JavaScript 中关于 ES9 的 8 个重要更新

阅读时长 5 分钟读完

1. 异步迭代器(Async Iterators)

ES9 引入了一种新的迭代器类型:异步迭代器。这些迭代器可以用于处理异步数据流,如数据流或 WebSockets 数据流。异步迭代器使用 Symbol.asyncIterator 作为其键名,其迭代器接口包含一个异步 next 函数。当这个函数执行时,它返回一个 Promise 对象,解析为一个包含 valuedone 属性的对象。下面是一个异步迭代器的示例:

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

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

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

2. Promise.prototype.finally

Promise.prototype.finally 允许您在 Promise 执行结束时,无论是 resolved 还是 rejected,执行一段代码。代码示例:

3. Rest/Spread 属性

ES9 允许我们在对象字面量中使用 Rest/Spread 属性。Rest 属性可以让您捕获未匹配的对象属性,而 Spread 属性可以让您展开一个对象,以便它的属性可以分别分配给其他变量。示例代码:

4. 正则表达式的命名捕获组

ES9 可以使用命名捕获组来匹配命名字符串。命名捕获组可以提高代码可读性和可维护性。示例代码:

5. 将顶级 await 纳入 ECMAScript 标准

ES9 将顶级 await 纳入 ECMAScript 标准。顶级 await 允许您在模块的顶部等待 Promise 对象。示例代码:

6. 高效的对象属性描述符

ES9 引入了 Object.fromEntries() 方法,该方法允许我们将数组转换为对象。数组的每个元素应该是一个由键值对组成的数组。示例代码:

7. 改进的 JSON.stringify()

如果您尝试调用 JSON.stringify() 来序列化一个对象,该对象包含循环引用,您会得到一个错误。ES9 引入了一个新的可选参数,可以解决这个问题。该嵌套选项告诉 JSON.stringify() 序列化由 circula 引用构成的对象时应如何处理它们。示例代码:

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

8. 非捕获性断言

非捕获性断言是一个模式,用于与模式相匹配,但不在返回数组中返回。该模式用括号包括。示例代码:

结论

以上就是 ES9 的 8 个重要更新。这些更新为开发人员提供了更多的功能和工具,帮助我们更有效地编写和维护代码。如果您希望尝试这些新功能,可以使用 Babel 进行转译。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6715c73aad1e889fe218dee8

纠错
反馈