Skip to main content

Скобкова нотація

У 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]коли ключ динамічний або містить спецсимволи

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.