MST

星途 面试题库

面试题:JavaScript 生成器的基本用法

请简述 JavaScript 生成器函数的定义方式,以及如何使用 `yield` 关键字暂停和恢复生成器。并给出一个简单的生成器函数示例,该函数能够按顺序生成 1 到 5 的整数。
46.7万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 生成器函数的定义方式
    • 在 JavaScript 中,生成器函数通过在 function 关键字后加上 * 来定义。例如:function* generatorFunction() {}。这里的 * 可以紧挨着 function 关键字,也可以有空格,如 function * generatorFunction() {} 同样有效。
  2. yield 关键字的使用
    • 暂停生成器:在生成器函数内部,yield 关键字用于暂停生成器的执行,并返回一个值。当生成器函数执行到 yield 语句时,它会暂停,并且 yield 后面表达式的值会作为生成器对象的 next() 方法调用的返回值中的 value 属性返回。
    • 恢复生成器:通过调用生成器对象的 next() 方法,可以恢复生成器的执行。next() 方法的调用会使生成器从暂停的 yield 语句处继续执行,直到遇到下一个 yield 语句或者函数结束。
  3. 生成 1 到 5 整数的生成器函数示例
function* generateNumbers() {
    for (let i = 1; i <= 5; i++) {
        yield i;
    }
}
// 使用生成器
const gen = generateNumbers();
console.log(gen.next().value); // 输出 1
console.log(gen.next().value); // 输出 2
console.log(gen.next().value); // 输出 3
console.log(gen.next().value); // 输出 4
console.log(gen.next().value); // 输出 5