MST

星途 面试题库

面试题:JavaScript生成器状态管理之基础操作

请描述JavaScript生成器的基本概念,并举例说明如何使用生成器函数来实现简单的状态管理,比如控制一个计数器的逐步递增。
27.2万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

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递增并再次暂停等待下一次调用。