Выбор ответа Junior Итераторы и генераторы обновлено
for...of по обычному объекту
Вопрос
Что произойдёт?
const prices = { tea: 100, coffee: 200 };
for (const p of prices) {
console.log(p);
}
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: TypeError: prices is not iterable. У обычных объектов нет [Symbol.iterator], поэтому for...of бросает TypeError.
Варианты ответа
- Выведет значения
100и200 - TypeError: prices is not iterableправильный ответ
- Выведет ключи
teaиcoffee - Ничего не выведет и не упадёт
Разбор
У обычных объектов нет [Symbol.iterator], поэтому for...of бросает TypeError. Ключи перебирает for...in или Object.keys, значения Object.values, пары Object.entries(prices), который возвращает итерируемый массив. Объекты специально не сделали итерируемыми: непонятно, что перебирать по умолчанию, ключи или значения.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.