Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
06 Июл 2023
2 мин
4909

Разница между операторами (for…in) и (for…of) в JavaScript

Одной из часто встречающихся проблем для новичков в JavaScript является разница между операторами цикла for…in и for…of. Это важный аспект языка, понимание

Разработка на Java — востребованное направление, такие специалисты будут нужны на рынке еще долго. На курсе «Java-разработчик» от Skypro освоить профессию можно с нуля за 11 месяцев, даже если вы гуманитарий и ничего не знаете об IT. Программа составлена от простого к сложному и адаптирована для новичков. Преподаватели — практикующие специалисты из крупных компаний: «Сбер», «Самокат» и других.

Одной из часто встречающихся проблем для новичков в JavaScript является разница между операторами цикла for...in и for...of. Это важный аспект языка, понимание которого помогает эффективно обрабатывать и манипулировать данными.

let array = [1, 2, 3];
array.property = "value";

for(let i in array) {
    console.log(i); // выводит "0", "1", "2", "property"
}

for(let i of array) {
    console.log(i); // выводит "1", "2", "3"
}

В данном примере кода кажется, что for...of игнорирует свойство property массива, в то время как for...in его обрабатывает.

Однако, это не так. Основная разница между этими операторами заключается в том, что for...in проходит по всем перечисляемым свойствам объекта (включая свойства, унаследованные от прототипа), тогда как for...of проходит только по значениям элементов объекта, которые доступны через итератор.

В случае с массивами, итератором является индекс каждого элемента массива. Следовательно, for...of проходит через все числовые индексы массива и возвращает соответствующие значения. Он не проходит через какие-либо другие свойства, включая те, которые были добавлены вручную, как в приведенном выше примере.

Таким образом, хотя for...in и for...of оба являются операторами цикла и могут использоваться для обработки объектов и массивов, они обрабатывают эти структуры данных по-разному. Выбор между ними зависит от конкретной ситуации и требуемого результата.

Освойте Java на курсе онлайн-университета Skypro. Учебе нужно будет уделять всего 10 часов в неделю: сможете совмещать с работой и личными делами. Вас ждут 440 часов теории и практики, мастер-классы с реальными рабочими задачами, опытные преподаватели, кураторы и наставники. За время обучения сделаете два полноценных проекта для портфолио и множество домашних заданий, чтобы отработать навыки.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий