В чём разница между циклами for...in и for...of?
Уровень: Middle
Ответ
`for...in` перебирает перечисляемые свойства объекта (включая его прототипные, если не сделать проверку `hasOwnProperty`). В контексте массива `for...in` пробежит по индексам массива (но не гарантирует порядок для нечисловых ключей и может захватить добавленные в прототип методы). `for...of` же работает с так называемыми итерируемыми объектами – при каждой итерации он получает очередное значение. Для массива `for...of` переберёт значения элементов (в порядке их индексов). `for...of` нельзя применять к обычному объекту (неитерируемому) без специальной реализации итератора. В целом: for-in – для ключей/свойств объекта, for-of – для значений итерируемой коллекции (массива, строки, Map, Set и т.д.).