22 / 43
Что такое итератор и протокол итерации (Symbol.iterator)?
Итератор это объект с методом next(), который при каждом вызове возвращает { value, done }. Протокол итерации (iterable protocol) требует, чтобы объект имел метод Symbol.iterator, возвращающий итератор. Все встроенные коллекции (массивы, строки, Map, Set) реализуют этот протокол, что позволяет использовать их в for...of, spread-операторе и деструктуризации.