Свойства и значения объектов

Свойства и значения объектов

Технический фундамент работы со свойствами

Свойство объекта имеет три базовые операции: чтение, запись, удаление.
Ошибки обычно возникают не в синтаксисе, а в динамическом доступе к ключам и в неявных 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 применяй аккуратно: он меняет структуру объекта, что может ломать другие части кода.

Микро-сценарии

  1. Обновить профиль пользователя после редактирования формы.
user.name = formName;
user.city = formCity;
  1. Добавить вычисляемое поле в ответ API.
order.totalLabel = `${order.total} ₽`;

Типичные ошибки

  • Писать obj.key вместо obj[key] для переменной-ключа.
  • Перезаписывать важные поля без проверки.
  • Удалять свойства, которые ожидают другие функции.
  • Не обрабатывать undefined при чтении.

Краткий итог

  • Свойства определяют структуру объекта.
  • Читай через ./[], обновляй точечно.
  • Отсутствующее поле дает undefined.
  • delete удаляет свойство и меняет объект.
  • Точная работа со свойствами делает код устойчивым.