@iswik

Почему цикл for in возвращает undefined?

В цикле for in при обращении к свойству объекта через точку выводит в консоль undefined
"use strict";

const car = {
    color: "blue",
    width: 5,
    height: 1.7,
    names: {
        first: "nissan",
        second: "toyota"
    }
};

for (let keys in car) {
    console.log(car.keys);
}

В то время как при обращении через [] выводит правильное значение
"use strict";

const car = {
    color: "blue",
    width: 5,
    height: 1.7,
    names: {
        first: "nissan",
        second: "toyota"
    }
};

for (let keys in car) {
    console.log(car[keys]);
}


Почему?
  • Вопрос задан
  • 295 просмотров
Решения вопроса 1
@dispache
Квадратные скобки позволяют обратиться к свойству, имя которого может быть результатом выражения. Например, имя свойства может храниться в переменной.
В твоем случае :
1) keys = "color"
2) keys = "width"
и т.д
Запись через точку не позволяет этого сделать,потому что так устроен синтаксис языка.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект