ES12 进阶笔记:迭代器 & 生成器符号 (Symbol)

前言

ES12 是 ECMAScript 2021 标准的简称,它是 JavaScript 的最新版本。在 ES12 中,引入了许多新特性,其中包括迭代器和生成器符号 (Symbol)。本文将详细介绍这两个特性,并提供示例代码。

迭代器

迭代器是一种用于遍历集合的对象,它提供了一种统一的方式来访问集合中的元素。在 ES12 中,可以使用 for...of 循环来遍历迭代器。

创建迭代器

在 ES12 中,可以使用 Symbol.iterator 符号来创建迭代器。Symbol.iterator 是一个内置的符号,它返回一个迭代器对象。下面是一个示例:

在上面的示例中,myArray[Symbol.iterator]() 返回一个迭代器对象 myIterator

遍历迭代器

可以使用 for...of 循环来遍历迭代器。下面是一个示例:

在上面的示例中,for...of 循环遍历了迭代器 myIterator 中的每个元素,并将其打印到控制台上。

生成器符号 (Symbol)

生成器符号 (Symbol) 是一种用于创建生成器函数的内置符号。生成器函数是一种特殊的函数,它可以暂停和恢复它们的执行。在 ES12 中,可以使用 function* 关键字来定义生成器函数。

创建生成器函数

可以使用 function* 关键字来创建生成器函数。下面是一个示例:

在上面的示例中,myGenerator 是一个生成器函数,它返回一个迭代器对象。使用 yield 关键字可以将值发送到生成器函数中,并暂停函数的执行。

遍历生成器函数

可以使用 for...of 循环来遍历生成器函数。下面是一个示例:

在上面的示例中,for...of 循环遍历了生成器函数 myGenerator 中的每个元素,并将其打印到控制台上。

总结

ES12 中引入了迭代器和生成器符号 (Symbol) 这两个特性,它们提供了一种统一的方式来访问集合中的元素和创建生成器函数。在实际开发中,可以使用这些特性来简化代码和提高性能。

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


纠错
反馈