jskatas.org Continuously Learn JavaScript. Your Way.

Generator: iterator

Generators return iterable objects

Generators returns an iterable object

a generator returns an object
function* generatorFunction(){ yield 1; yield 2; } const generator = generatorFunction(); const typeOfTheGenerator = ''; assert.equal(typeOfTheGenerator, typeof generator);
a generator object has a key Symbol.iterator
function* generatorFunction(){ yield 1; yield 2; } const generator = generatorFunction(); const key = '???'; assert.equal(key in generator, true);
the Symbol.iterator is a function
function* generatorFunction(){ yield 1; yield 2; } const generator = generatorFunction(); const theType = typeof generator.Symbol.iterator; assert.equal(theType, 'function');
can be looped with `for-of', which expects an iterable
function* generatorFunction(){ yield 1; yield 2; } const generator = generatorFunction(); function iterateForOf(){ for (let value of {}) { // no statements needed } } assert.doesNotThrow(iterateForOf);