seção
O que é um Iterator?
Um iterator define uma sequência e expõe .next() → { value, done }:
function criarContador(max) { let n = 0; return { next() { return n < max ? { value: n++, done: false } : { value: undefined, done: true }; }, };} const it = criarContador(3);it.next(); // { value: 0, done: false }it.next(); // { value: 1, done: false }it.next(); // { value: 2, done: false }it.next(); // { value: undefined, done: true }Por que não só array? Lazy evaluation (computa sob demanda) e memória estável — processe 1 milhão de registros um por vez.
| Iterável built-in | O que itera |
|---|---|
| Array, String | elementos / caracteres |
| Map | [key, value] |
| Set | valores únicos |
for...of chama [Symbol.iterator]() e .next() até done: true.