前言
ES12 是 ECMAScript 2021 标准的简称,它是 JavaScript 的最新版本。在 ES12 中,引入了许多新特性,其中包括迭代器和生成器符号 (Symbol)。本文将详细介绍这两个特性,并提供示例代码。
迭代器
迭代器是一种用于遍历集合的对象,它提供了一种统一的方式来访问集合中的元素。在 ES12 中,可以使用 for...of
循环来遍历迭代器。
创建迭代器
在 ES12 中,可以使用 Symbol.iterator
符号来创建迭代器。Symbol.iterator
是一个内置的符号,它返回一个迭代器对象。下面是一个示例:
const myArray = [1, 2, 3]; const myIterator = myArray[Symbol.iterator]();
在上面的示例中,myArray[Symbol.iterator]()
返回一个迭代器对象 myIterator
。
遍历迭代器
可以使用 for...of
循环来遍历迭代器。下面是一个示例:
const myArray = [1, 2, 3]; const myIterator = myArray[Symbol.iterator](); for (const value of myIterator) { console.log(value); }
在上面的示例中,for...of
循环遍历了迭代器 myIterator
中的每个元素,并将其打印到控制台上。
生成器符号 (Symbol)
生成器符号 (Symbol) 是一种用于创建生成器函数的内置符号。生成器函数是一种特殊的函数,它可以暂停和恢复它们的执行。在 ES12 中,可以使用 function*
关键字来定义生成器函数。
创建生成器函数
可以使用 function*
关键字来创建生成器函数。下面是一个示例:
function* myGenerator() { yield 1; yield 2; yield 3; }
在上面的示例中,myGenerator
是一个生成器函数,它返回一个迭代器对象。使用 yield
关键字可以将值发送到生成器函数中,并暂停函数的执行。
遍历生成器函数
可以使用 for...of
循环来遍历生成器函数。下面是一个示例:
// javascriptcn.com 代码示例 function* myGenerator() { yield 1; yield 2; yield 3; } for (const value of myGenerator()) { console.log(value); }
在上面的示例中,for...of
循环遍历了生成器函数 myGenerator
中的每个元素,并将其打印到控制台上。
总结
ES12 中引入了迭代器和生成器符号 (Symbol) 这两个特性,它们提供了一种统一的方式来访问集合中的元素和创建生成器函数。在实际开发中,可以使用这些特性来简化代码和提高性能。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65852cbfd2f5e1655dfda41f