📅  最后修改于: 2023-12-03 15:16:09.619000             🧑  作者: Mango
在 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*
定义函数,不能使用箭头函数。通过理解和掌握产量表达式,可以使用生成器函数更好地控制程序的执行流程,使代码更加简洁、易于维护。