Объекты
Объект собирает связанные значения под именами. В { name: "Coco", age: 3 } pet.name даёт "Coco", а pet.age даёт 3.
Значения с подписями
Массив хорош для списка похожих вещей по порядку. Но многие вещи в мире лучше описывать набором подписанных фактов: у питомца есть имя, вид и возраст; у товара есть название, цена и количество на складе. Объект хранит именно это. Он представляет собой набор свойств, и каждое свойство состоит из ключа (подписи) и значения.
const pet = {
name: "Coco",
kind: "cat",
age: 3,
};
console.log(pet.name); // Coco
console.log(pet["kind"]); // cat
console.log(pet.age + 1); // 4Объект пишут в фигурных скобках, каждое свойство в виде key: value, через запятую. Запятая после последнего свойства допускается. Чтобы прочитать свойство, напиши объект, точку и ключ: pet.name. Другая форма использует квадратные скобки и строку: pet["kind"]. Скобки нужны, когда ключ хранится в переменной, как в pet[field], или когда в нём есть пробел. Чтение несуществующего ключа даёт undefined.
Изменение и добавление свойств
Присвой значение свойству, чтобы изменить его, и присвой значение новому ключу, чтобы добавить свойство. Как и с массивами, это работает, даже если объект объявлен через const, потому что переменная по-прежнему указывает на тот же объект.
const player = { name: "Sam", score: 0 };
player.score += 10;
player.level = 2;
console.log(`${player.name} ${player.score} ${player.level}`); // Sam 10 2
delete player.level;
console.log(player.level); // undefinedСписки объектов
Массивы и объекты естественно сочетаются. В массиве объектов большинство программ хранит записи: корзину покупок, список класса, результаты поиска. Ты проходишь циклом по массиву и читаешь из каждого объекта нужные свойства.
const basket = [
{ item: "pen", price: 2 },
{ item: "book", price: 12 },
{ item: "bag", price: 25 },
];
let total = 0;
for (const line of basket) {
total += line.price;
}
console.log("Total:", total); // Total: 39Значения внутри объекта могут быть любыми, в том числе массивами и другими объектами. const user = { name: "Ana", tags: ["admin", "editor"] }; позволяет написать user.tags[0], чтобы добраться до "admin". Такие цепочки читают слева направо: начни с user, перейди к его свойству tags, затем возьми индекс 0.
Методы и ключи объекта
Свойство, значением которого является функция, называется методом. Ты всё это время вызывал методы: console.log является методом log объекта console, а Math.round является методом round объекта Math. Внутри метода ключевое слово this указывает на объект, у которого вызвали метод, так что метод может читать свойства своего объекта. Наконец, Object.keys(pet) даёт массив ключей, здесь ["name", "kind", "age"], и это удобно, чтобы пройти циклом по каждому свойству.
const counter = {
count: 0,
add() {
this.count++;
},
};
counter.add();
counter.add();
console.log(counter.count); // 2Разобранный пример. Запись о книге { title: "Notes", pages: 120, read: 45 } может сообщить прогресс через Math.round(book.read / book.pages * 100), что даёт 38, то есть 38 процентов. Имена pages и read делают формулу понятной, а b[1] / b[0] такой понятной никогда не будет.
Массив или объект?
Выбрать помогает быстрая проверка. Если значения одного рода и важен их порядок, например оценки класса или шаги рецепта, бери массив и обращайся к ним по позиции. Если значения являются разными фактами об одной вещи, например название, цена и остаток товара, бери объект и обращайся к ним по имени. Большинство настоящих данных смешивает оба вида: массив товаров, где каждый товар является объектом. Когда ты печатаешь объект в поле для практики, он выглядит компактно, например {"name":"Coco","age":3}; чтение отдельных свойств даёт более чистый вывод.
| объект | Группа именованных значений в { } |
| свойство | Одна пара key: value в объекте |
| ключ | Имя свойства, например age |
| запись через точку | pet.name |
| запись через скобки | pet["name"] или pet[field] |
| метод | Свойство, значением которого является функция |
| this | Внутри метода: объект, у которого его вызвали |
| Object.keys | Массив ключей объекта |
- Что выведет этот код?
const car = { brand: "Kia", year: 2020 }; console.log(car.year); - Что выведет этот код?
const car = { brand: "Kia", year: 2020 }; console.log(car["brand"]); - Что выведет этот код?
const car = { brand: "Kia" }; console.log(typeof car.color);- undefined
- Ошибку
- string
- Что выведет этот код?
const box = { w: 4, h: 5 }; box.w = 6; console.log(box.w * box.h); - Что выведет этот код?
const p = { name: "Lee" }; p.age = 40; console.log(Object.keys(p).length); - Что выведет этот код?
const field = "score"; const r = { score: 88 }; console.log(r[field]); - Что выведет этот код?
const u = { name: "Ana", tags: ["admin", "editor"] }; console.log(u.tags[1]); - Что выведет этот код?
const items = [{ n: 2 }, { n: 5 }, { n: 1 }]; let t = 0; for (const it of items) { t += it.n; } console.log(t); - Что выведет этот код?
const c = { count: 5, add() { this.count++; }, }; c.add(); console.log(c.count); - Какая строка добавляет объекту item свойство price со значением 9?
item.price = 9;item = price: 9;item.push(price, 9);
- Объекты хранят свойства key: value в { }.
- Читай через obj.key или obj["key"]; скобки нужны для ключей в переменных.
- Присваивание меняет или добавляет свойство; отсутствующие ключи читаются как undefined.
- Массивы объектов хранят записи; проходи циклом и читай каждое свойство.
- Метод является свойством-функцией; this является его объектом.
Источники курса (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
Проверено: 2026-10-17