优雅地使用 ECMAScript 2021 中的 for...of 循环

在 ECMAScript 2015 中引入了 for...of 循环,它可以用于遍历可迭代对象(例如数组和字符串)中的元素。在 ECMAScript 2021 中,for...of 循环得到了进一步的改进,使得我们可以更加优雅地使用它来处理迭代器和异步迭代器。本文将深入介绍 for...of 循环的新功能,并提供一些示例代码,以帮助您更好地理解和使用它。

迭代器和异步迭代器

在介绍 ECMAScript 2021 中的 for...of 循环之前,让我们先来了解一下迭代器和异步迭代器。迭代器是一种对象,它提供了一个 next() 方法,用于返回下一个元素的值和状态。例如,下面是一个返回数字 1 到 5 的迭代器的示例代码:

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

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

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

异步迭代器是一种迭代器,它返回 Promise 对象而不是立即返回下一个元素的值。例如,下面是一个返回数字 1 到 5 的异步迭代器的示例代码:

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

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

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

for...of 循环的新功能

在 ECMAScript 2021 中,for...of 循环得到了两个新功能,使得我们可以更加优雅地处理迭代器和异步迭代器。

1. 可选的 as 子句

在 ECMAScript 2021 中,for...of 循环可以使用可选的 as 子句,用于指定元素的类型。例如,下面是一个使用 as 子句指定元素类型为字符串的示例代码:

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

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

在这个示例代码中,我们使用 as 子句将 array 转换为字符串数组类型,以便在循环中使用 toUpperCase() 方法。

2. 异步迭代器支持

在 ECMAScript 2021 中,for...of 循环可以用于处理异步迭代器。例如,下面是一个使用 for...of 循环处理异步迭代器的示例代码:

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

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

在这个示例代码中,我们使用 for await...of 循环处理异步迭代器 generateNumbers(),并使用 await 关键字等待每个元素的 Promise 对象被解析。这使得我们可以更加优雅地处理异步迭代器。

总结

在 ECMAScript 2021 中,for...of 循环得到了两个新功能,使得我们可以更加优雅地处理迭代器和异步迭代器。通过使用可选的 as 子句,我们可以指定元素的类型,从而更好地利用类型系统。通过使用 for await...of 循环,我们可以更加优雅地处理异步迭代器,从而简化异步编程。希望本文对您有所帮助,让您更好地使用 ECMAScript 2021 中的 for...of 循环。

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