面试题答案
一键面试JavaScript生成器基本概念
生成器是一种特殊类型的函数,它可以暂停和恢复执行,返回一个迭代器对象。与普通函数不同,生成器函数使用function*
语法定义,函数内部使用yield
关键字来暂停函数执行并返回一个值,下次调用迭代器的next()
方法时,函数会从暂停的地方继续执行。
示例:使用生成器函数实现计数器逐步递增
function* counterGenerator() {
let count = 0;
while (true) {
yield count++;
}
}
const counter = counterGenerator();
console.log(counter.next().value); // 输出 0
console.log(counter.next().value); // 输出 1
console.log(counter.next().value); // 输出 2
在上述代码中,counterGenerator
是一个生成器函数,每次调用counter.next()
时,yield
表达式会返回当前的count
值并暂停函数执行,再次调用next()
时从暂停处继续执行,使count
递增并再次暂停等待下一次调用。