📜  JavaScript 产量* 表达式(1)

📅  最后修改于: 2023-12-03 15:16:09.619000             🧑  作者: Mango

JavaScript 产量表达式

在 JavaScript 中,产量表达式(yield expression)是一个特殊的表达式,用于配置生成器(generator)函数的迭代器(iterator)。生成器函数是一种特殊的函数,可以暂停执行并在需要时恢复执行,直到返回结果或抛出异常。通过使用产量表达式,可以控制生成器函数的执行,使其返回多个结果。

语法

产量表达式的语法如下:

yield expression

其中 expression 是要返回的值。产量表达式只能在生成器函数中使用,否则会抛出语法错误。

示例

以下是一个简单的生成器函数示例,用于返回斐波那契数列的前两个数字:

function* fibonacci() {
  let a = 0, b = 1;
  yield a;
  yield b;
  while (true) {
    let c = a + b;
    yield c;
    a = b;
    b = c;
  }
}

let fib = fibonacci();
console.log(fib.next()); // {value: 0, done: false}
console.log(fib.next()); // {value: 1, done: false}
console.log(fib.next()); // {value: 1, done: false}
console.log(fib.next()); // {value: 2, done: false}
console.log(fib.next()); // {value: 3, done: false}
// ...

在上述示例中,通过使用 yield 关键字,可以使生成器函数在执行到指定的点时暂停,并返回一个值。每次调用 next() 方法会使生成器函数从上一次暂停的位置继续执行,直到执行完所有的语句或遇到下一个 yield 表达式。

注意事项
  • 产量表达式只能在生成器函数中使用。
  • 只能使用 yield 关键字来终止生成器函数并返回值,不能使用 return 关键字。
  • 在生成器函数中使用 yield 关键字时,必须使用 function* 定义函数,不能使用箭头函数。
结论

通过理解和掌握产量表达式,可以使用生成器函数更好地控制程序的执行流程,使代码更加简洁、易于维护。