按照阮一峰的ECMA6标准入门例子写的,运行环境为vscode
"use strict"
function* fibs() {
let a = 0;
let b = 1;
while (true) {
yield a;
[a, b] = [a, a+b];
}
}
let [first, second, third, fourth, fifth, sixth] = fibs();
console.log(sixth)
运行报错,报错为
[a, b] = [a, a+b];
^
ReferenceError: Invalid left-hand side in assignment
有知道为什么的大牛吗?
你好像写错了。
应该是
[a, b] = [b, a + b]
这里是迭代过程,先把当前的
b
赋值给a
,然后把当前的a + b
赋值给b
相当于这样的写法: