Свойства и значения объектов
Свойства и значения объектов
Технический фундамент работы со свойствами
Свойство объекта имеет три базовые операции: чтение, запись, удаление.
Ошибки обычно возникают не в синтаксисе, а в динамическом доступе к ключам и в неявных undefined.
const obj = { a: 1 };
console.log(obj.a); // 1
obj.b = 2;
delete obj.a;
console.log(obj); // { b: 2 }
Ключевой момент: операции со свойствами меняют структуру объекта во время выполнения, поэтому важно контролировать контракт полей.
Свойство = имя поля + значение
const course = {
title: 'JavaScript Basics',
lessons: 12,
published: true,
};
title,lessons,published— ключи;- значения могут быть любого типа: строка, число, булево, массив, объект, функция.
Чтение значений
console.log(course.title); // JavaScript Basics
console.log(course['lessons']); // 12
Если свойства нет, получишь undefined.
console.log(course.level); // undefined
Проверь себя: чем отличается «свойство отсутствует» от «свойство есть и равно null»?
Подсказка: null обычно означает «значение пустое, но поле есть». Отсутствие поля означает «поля нет в объекте».
Отличать эти случаи полезно через проверку наличия ключа (подробнее в следующем уроке):
console.log(Object.hasOwn(course, 'level')); // false
course.level = null;
console.log(Object.hasOwn(course, 'level')); // true
Добавление и обновление
course.level = 'beginner'; // добавление
course.lessons = 14; // обновление
Через квадратные скобки удобно обновлять динамически:
const key = 'title';
course[key] = 'JS from Zero';
Удаление свойства
delete course.published;
console.log(course.published); // undefined
delete применяй аккуратно: он меняет структуру объекта, что может ломать другие части кода.
Микро-сценарии
- Обновить профиль пользователя после редактирования формы.
user.name = formName;
user.city = formCity;
- Добавить вычисляемое поле в ответ API.
order.totalLabel = `${order.total} ₽`;
Типичные ошибки
- Писать
obj.keyвместоobj[key]для переменной-ключа. - Перезаписывать важные поля без проверки.
- Удалять свойства, которые ожидают другие функции.
- Не обрабатывать
undefinedпри чтении.
Краткий итог
- Свойства определяют структуру объекта.
- Читай через
./[], обновляй точечно. - Отсутствующее поле дает
undefined. deleteудаляет свойство и меняет объект.- Точная работа со свойствами делает код устойчивым.