什么是js生成器

73次阅读
没有评论

JavaScript生成器(Generator)是一种特殊的函数,它可以通过yield语句将函数执行的控制权交给调用者,并在之后可以通过调用next()方法来继续执行函数。生成器函数的执行不是一次性的,而是可以分多次进行,这使得生成器可以生成一系列的值,而不需要一次性生成所有值。

生成器函数通过在函数名前加上”*”来定义,yield语句可以在函数中多次使用,用于暂停函数的执行,并将控制权交给调用者。当调用next()方法时,生成器会从yield语句处继续执行,直到遇到下一个yield语句或函数结束为止。

下面是一个简单的示例,说明如何定义和使用生成器函数:

function* fibonacci() {
  let [prev, curr] = [0, 1];
  while (true) {
    [prev, curr] = [curr, prev + curr];
    yield curr;
  }
}

let fib = fibonacci();
for (let i = 0; i < 10; i++) {
  console.log(fib.next().value);
}

在上面的示例中,定义了一个生成器函数fibonacci,它可以生成斐波那契数列中的每一个元素。通过将生成器赋值给变量fib,并通过调用next()方法来逐个输出斐波那契数列的前10个元素。

需要注意的是,生成器函数在执行过程中,可以使用return语句结束函数的执行,并可以在函数返回值中返回一个最终结果。此外,生成器函数还可以使用throw语句在函数执行过程中抛出一个异常,并在函数外部进行处理。

正文完
 
评论(没有评论)