[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/yield [Back]  [Original]

yield - JavaScript | MDN

MDN Web Docs

View in English Always switch to English

yield

Baseline

20169

yield

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

js
yield
yield expression

expression

undefined

next()

: next() yield yield next() yield

yield yield return

yield

Generator next()

  • 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()

yield

js
function* countAppleSales() {
  const saleList = [3, 7, 5];
  for (const sale of saleList) {
    yield sale;
  }
}

js
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()

js
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