Итерируемые объекты в JavaScript

Любой объект, который можно перебрать через цикл for of, называется итерируемым.

Массивы являются одним из частных случаев итерируемых объектов:

javascriptlet arr = [1, 2, 3];

for (let elem of arr) {
  console.log(elem);
}

Коллекции Map также являются итерируемыми объектами:

javascriptlet map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);

for (let elem of map) {
  console.log(elem);
}

Коллекции NodeList также являются итерируемыми объектами:

javascriptlet elems = document.querySelectorAll('p');

for (let elem of elems) {
  console.log(elem);
}

Кроме того, JavaScript позволяет сделать итерируемым все, что угодно. Для этого существуют специальные манипуляции, которые мы будем изучать в следующих уроках:

javascriptlet obj = {a: 1, b: 2, c: 3};

// тут хитрые манипуляции

for (let elem of obj) { // можно перебирать
  console.log(elem);
}
Задание 1

Приведите еще примеры известных вам сущностей, которые являются итерируемыми объектами.