Работа со свойствами
Урок: Работа со свойствами
Введение
Когда мы начинаем работать с объектами, довольно быстро становится понятно: сам по себе объект — это просто «контейнер». Настоящая работа происходит с его содержимым — свойствами.
Представь пользователя в системе. У него есть имя, возраст, статус, настройки. В реальном приложении нам нужно не просто хранить эти данные, а:
- читать их;
- изменять;
- добавлять новые;
- иногда удалять.
То есть работать не с объектом целиком, а с его отдельными частями.
Именно это и называется работой со свойствами объекта.
Понимание этой темы — ключ к работе с реальными данными, потому что почти всё в JavaScript — это объекты и их свойства.
Что такое свойства объекта
Свойство — это пара «ключ — значение», которая находится внутри объекта.
let user = {
name: 'Stepan',
age: 25,
};
Здесь:
nameиage— это свойства;"Stepan"и25— их значения.
Объект можно представить как набор характеристик, где у каждой характеристики есть имя.
Именно через свойства мы получаем доступ к данным.
Получение значения свойства
Самый частый сценарий — это получение значения.
let user = {
name: 'Stepan',
age: 25,
};
console.log(user.name);
Результат:
Stepan
Здесь используется точечная запись: user.name.
Она означает: «возьми у объекта user свойство name».
Это основной и самый простой способ доступа.
Альтернативный способ — через квадратные скобки
Есть второй способ получить значение:
let user = {
name: 'Stepan',
age: 25,
};
console.log(user['name']);
Результат будет таким же.
Но этот способ полезен в динамических ситуациях:
let user = {
name: 'Stepan',
age: 25,
};
let key = 'age';
console.log(user[key]);
Здесь имя свойства хранится в переменной, и мы получаем доступ через неё.
Это важно, когда структура объекта неизвестна заранее или строится динамически.
Изменение свойств
Свойства объекта можно изменять.
let user = {
name: 'Stepan',
age: 25,
};
user.age = 30;
console.log(user.age);
Результат:
30
Здесь мы просто присваиваем новое значение.
Важно: если свойство уже существует — оно перезаписывается.
Добавление новых свойств
Если свойства нет, его можно добавить:
let user = {
name: 'Stepan',
};
user.email = 'test@mail.com';
console.log(user);
Результат:
{ name: "Stepan", email: "test@mail.com" }
JavaScript позволяет свободно расширять объекты во время выполнения.
Это делает их очень гибкими.
Удаление свойств
Свойство можно удалить с помощью оператора delete:
let user = {
name: 'Stepan',
age: 25,
};
delete user.age;
console.log(user);
Результат:
{ name: "Stepan" }
После удаления свойства больше не существует в объекте.
Проверка наличия свойства
Иногда нужно проверить, есть ли свойство в объекте.
let user = {
name: 'Stepan',
};
console.log('name' in user);
console.log('age' in user);
Результат:
true
false
Оператор in проверяет, существует ли ключ в объекте.
Это полезно, когда данные могут быть неполными.
Перебор свойств объекта
Если нужно пройтись по всем свойствам, используется цикл for...in.
let user = {
name: 'Stepan',
age: 25,
};
for (let key in user) {
console.log(key, user[key]);
}
Результат:
name Stepan
age 25
Здесь:
key— это имя свойства;user[key]— значение.
Этот цикл позволяет обрабатывать объект целиком.
Получение всех значений объекта
Иногда нужно не только ключи, но и значения объекта.
Для этого есть встроенный метод Object.values():
const settings = { theme: 'dark', lang: 'ru', fontSize: 16 };
const values = Object.values(settings);
console.log(values);
Результат:
['dark', 'ru', 16]
Что здесь происходит:
Object.values()берёт объект;- возвращает массив всех его значений;
- порядок соответствует порядку свойств.
Это часто используется при работе с настройками, конфигами или данными API.
Получение всех ключей объекта
Аналогично можно получить только ключи:
const user = { name: 'Alex', age: 25, city: 'SPB' };
const keys = Object.keys(user);
console.log(keys);
Результат:
['name', 'age', 'city']
Это полезно, когда нужно:
- узнать структуру объекта;
- пройтись по ключам;
- динамически обработать данные.
Массовое обновление свойств
Иногда нужно изменить сразу несколько полей.
const profile = { name: 'Ira', age: 20, city: 'Kazan' };
profile.age = 21;
profile.city = 'Moscow';
console.log(profile);
Результат:
{ name: 'Ira', age: 21, city: 'Moscow' }
Здесь нет никакой «магии» — мы просто по очереди меняем свойства.
Важно понимать: объект — это изменяемая структура (mutable), и изменения происходят прямо в нём.
Вложенные свойства
Свойства могут содержать другие объекты.
let user = {
name: 'Stepan',
address: {
city: 'Amsterdam',
},
};
console.log(user.address.city);
Результат:
Amsterdam
Здесь доступ происходит по цепочке: объект внутри объекта.
Такие структуры встречаются очень часто — особенно в ответах от API.
Где это используется на практике
Работа со свойствами — это основа любой работы с данными.
Например:
- получение данных пользователя (
user.name); - проверка наличия поля (
'email' in user); - перебор данных (
for...in,Object.keys); - извлечение значений (
Object.values); - обновление состояния (изменение свойств объекта);
- удаление лишних данных перед отправкой.
Когда приходит ответ от API, это почти всегда объект. И вся работа заключается в чтении и изменении его свойств.
В тестировании (например, в Playwright) это тоже используется постоянно:
- проверка структуры ответа API;
- работа с JSON;
- извлечение нужных полей из ответа.
Итоговое понимание
Свойства — это не просто часть объекта. Это точка входа ко всем данным, с которыми ты работаешь.
Объект сам по себе ничего не делает — он лишь хранит информацию. А вся логика строится вокруг его свойств:
- ты читаешь данные через свойства;
- изменяешь состояние через свойства;
- проверяешь наличие данных через свойства;
- перебираешь структуру через свойства.
Когда ты уверенно работаешь со свойствами, ты начинаешь по-настоящему управлять данными, а не просто хранить их.