考虑一种简单的for形式:
for (const elem of document.getElementsByTagName('*') {
// do something with elem
}
getElementsByTagName只会被评估一次还是在每次迭代中都会被评估?谢谢!
考虑一种简单的for形式:
for (const elem of document.getElementsByTagName('*') {
// do something with elem
}
function* getIntegers(max) {
for (let i = 0; i <= max; i++) {
yield i;
}
}
const iterator = getIntegers(15);
while (true) {
const { done, value } = iterator.next();
if (done) {
break;
}
console.log(value);
}
正如loganfsmyth所指出的那样,生成器函数会直接返回一个迭代器。注意:生成器函数也可以与for..of
结构一起使用。
请参阅MDN文章了解更多信息。