Основная идея
Цикл for...of — это современный синтаксис ES6 для перебора итерируемых объектов (массивов, строк, Map, Set и др.). В отличие от for...in, который перебирает ключи, for...of перебирает значения элементов.
Ключевые аспекты
- Работает с итерируемыми объектами — массивы, строки, Map, Set, NodeList, arguments
- Перебирает значения, а не индексы или ключи
- Не работает с обычными объектами — для объектов используйте
for...inилиObject.entries() - Поддерживает break и continue — в отличие от
forEach() - Чистый синтаксис — не требует работы с индексами
Плюсы
- Простой и читаемый синтаксис
- Автоматическое получение значений без индексации
- Работает с любыми итерируемыми объектами
- Можно прервать цикл через
break
Минусы
- Нет доступа к индексу элемента напрямую (используйте
entries()) - Не работает с обычными объектами
{} - Медленнее классического
forна больших массивах
Частые ошибки на собеседованиях
- Путают
for...ofиfor...in— первый для значений, второй для ключей - Пытаются использовать
for...ofс обычными объектами — получают TypeError - Забывают, что строки тоже итерируемые —
for...ofперебирает символы