Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Скобкова нотація». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)У JavaScript до властивостей об'єкта можна звертатися **скобковою нотацією** (`object['ключ']`), підставляючи замість `'ключ'` рядок або змінну з іменем властивості. **Ключове:** скобкова нотація обов'язкова, коли ключ - динамічне значення в змінній, містить пробіли, дефіс, число чи спецсимвол, або обчислюється виразом.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняУ JavaScript до властивостей об'єкта можна звертатися **двома способами**: через **крапку (**`.`**)** і через **скобкову нотацію (**`[]`**)**. І ось як працює **другий спосіб - скобкова нотація** --- ## Синтаксис ```javascript object['ключ'] ``` Замість `'ключ'` можна підставити **рядок** або **змінну**, що містить ім'я властивості. --- ## Приклад 1 - пряме звернення за рядком ```javascript const user = { name: 'Tim', age: 25 }; console.log(user['name']); // "Tim" console.log(user['age']); // 25 ``` Тут `'name'` і `'age'` - рядки, що збігаються з ключами об'єкта. --- ## Приклад 2 - звернення через змінну (динамічна властивість) ```javascript const key = 'city'; const user = { name: 'Tim', city: 'Kyiv' }; console.log(user[key]); // "Kyiv" ``` Це **головна перевага скобкової нотації** - ти можеш звертатися до властивостей, ім'я яких зберігається **у змінній**. З крапковою нотацією (`user.key`) це не спрацює. --- ## Приклад 3 - ключ з пробілами чи спецсимволами ```javascript const car = { 'car brand': 'BMW', 'engine-type': 'diesel' }; console.log(car['car brand']); // "BMW" console.log(car['engine-type']); // "diesel" ``` Якщо ім'я властивості містить **пробіли, дефіси, цифри на початку** або **його не можна записати як ідентифікатор**, вказати його можна **тільки через дужки**. --- ## Приклад 4 - вкладені об'єкти ```javascript const user = { name: 'Tim', address: { city: 'Kyiv' } }; console.log(user['address']['city']); // "Kyiv" ``` Скобкову нотацію можна використовувати для доступу до вкладених властивостей. --- ## Коли обов'язково використовувати `[]` | Ситуація | Чому | |---|---| | Ключ - динамічне значення (у змінній) | `obj[key]`, а не `obj.key` | | Ключ містить пробіли, дефіс, число або спецсимвол | `'car brand'`, `'engine-type'` | | Ключ обчислюється виразом | `obj['prefix_' + id]` | --- ## Підсумок | Спосіб | Приклад | Коли використовувати | |---|---|---| | Крапкова нотація | `user.name` | коли ключ відомий заздалегідь і є валідним іменем | | Скобкова нотація | `user['name']` або `user[key]` | коли ключ динамічний або містить спецсимволи |Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.