Processing each of the items in a collection is a very common operation. JavaScript provides a number of ways of iterating over a collection, from simple for loops to map() and filter(). Iterators and Generators bring the concept of iteration directly into the core language and provide a mechanism for customizing the behavior of for...of loops.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators
* for * map() * filter() * for...of * Generators * function * for..of * Array * Map * Object * prototype chain * Symbol.iterator * String * Array * TypedArray * Map * Set * Symbol.iterator * for-of * spread syntax * yield * destructuring assignment * next() * throw() * return(value)