| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/yield | [Back] [Original] |
Get to know MDN better
function* foo(index) {
while (index < 2) {
yield index;
index++;
}
}
const iterator = foo(0);
console.log(iterator.next().value);
// : 0
console.log(iterator.next().value);
// : 1
yield
yield expression
next()
:
next() yield yield next() yield
yield yield return
yield
yield next() value done 2 value yield done false next() value undefined done true return next() value done true throw next() yield next() next() yield next() yield next()
return() throw() return throw yield try...catch...finally return() throw() yield next()
function* countAppleSales() {
const saleList = [3, 7, 5];
for (const sale of saleList) {
yield sale;
}
}
const appleStore = countAppleSales(); // Generator { }
console.log(appleStore.next()); // { value: 3, done: false }
console.log(appleStore.next()); // { value: 7, done: false }
console.log(appleStore.next()); // { value: 5, done: false }
console.log(appleStore.next()); // { value: undefined, done: true }
next(value) step yield next() next()
function* counter(value) {
while (true) {
const step = yield value++;
if (step) {
value += step;
}
}
}
const generatorFunc = counter(0);
console.log(generatorFunc.next().value); // 0
console.log(generatorFunc.next().value); // 1
console.log(generatorFunc.next().value); // 2
console.log(generatorFunc.next().value); // 3
console.log(generatorFunc.next(10).value); // 14
console.log(generatorFunc.next().value); // 15
console.log(generatorFunc.next(10).value); // 26
| ECMAScript 2027 LanguageSpecification # prod-YieldExpression |
| Web Proxy Viewer | New URL | Original Page |