ES9 中 Symbol 的新特性:for await...of

简介

ES9 的新特性之一是 Symbol.for() 方法和 for await...of 循环。Symbol.for() 方法是一个全局注册表,它为每个给定的键创建一个唯一的符号。它可以消除全局冲突和命名空间污染,而 for await...of 循环是一个更高级的迭代器,可以在异步环境中实现更有效的代码。

Symbol.for() 方法

Symbol.for() 方法是 Symbol 对象的一个静态方法,它返回一个已命名的符号。如果给定的键已经存在则返回该键的现有符号,否则将为给定的键创建一个新符号。

使用示例:

在示例中,我们创建了两个名为"app.company.name"的符号,在比较它们时会发现两个符号是相等的。这是因为 Symbol.for() 方法返回的是已命名的符号对象。

for await...of 循环

for await...of 循环是一个异步循环迭代器,可以在异步程序中使用。它允许我们在迭代异步数据流时使用 await 表达式,从而实现更高效的异步编程。

使用示例:

在示例中,我们定义了一个名为 getData() 的异步函数,该函数使用了 fetch() 方法向远程服务器获取数据。然后创建一个读取器对象,该对象可以迭代从服务器返回的数据流。最后,我们使用 while 循环遍历数据流并打印每个数据块的值。注意到 while 循环最后有一个判断,它判断了数据流是否完成并退出循环。

学习指导

ES9 中的 Symbol.for() 方法和 for await...of 循环是现代 JavaScript 开发的两个重要工具。Symbol.for() 方法可用于创建全局唯一的符号,消除命名空间的污染和全局冲突。for await...of 循环则提供了一种更高效的异步迭代器,方便开发者处理异步数据流。对于那些希望使用最新 JavaScript 功能来创建更健壮和高效代码的开发者而言,这些新特性是必须掌握的。

在学习这些新特性时,可以贯彻以下理念:

  1. 理解 Symbol.for() 方法如何创建唯一不变的符号。
  2. 掌握 for await...of 循环如何使用 await 表达式来遍历异步数据流。
  3. 学会如何将新特性与现有技术(如异步函数,闭包和迭代器)相结合,以创建更高效和健壮的代码。

结论

Symbol.for() 方法和 for await...of 循环是 ES9 中的新特性,可用于创建全局唯一符号和更高效地迭代异步数据流。对于那些希望使用最新 JavaScript 功能来创建更健壮和高效代码的开发者而言,这些新特性是必须掌握的。

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