Скобкова нотація
У JavaScript до властивостей об'єкта можна звертатися двома способами:
через крапку (.) і через скобкову нотацію ([]).
І ось як працює другий спосіб - скобкова нотація
Синтаксис
object['ключ']Замість 'ключ' можна підставити рядок або змінну,
що містить ім'я властивості.
Приклад 1 - пряме звернення за рядком
const user = {
name: 'Tim',
age: 25
};
console.log(user['name']); // "Tim"
console.log(user['age']); // 25Тут 'name' і 'age' - рядки, що збігаються з ключами об'єкта.
Приклад 2 - звернення через змінну (динамічна властивість)
const key = 'city';
const user = {
name: 'Tim',
city: 'Kyiv'
};
console.log(user[key]); // "Kyiv"Це головна перевага скобкової нотації -
ти можеш звертатися до властивостей, ім'я яких зберігається у змінній.
З крапковою нотацією (user.key) це не спрацює.
Приклад 3 - ключ з пробілами чи спецсимволами
const car = {
'car brand': 'BMW',
'engine-type': 'diesel'
};
console.log(car['car brand']); // "BMW"
console.log(car['engine-type']); // "diesel"Якщо ім'я властивості містить пробіли, дефіси, цифри на початку або його не можна записати як ідентифікатор, вказати його можна тільки через дужки.
Приклад 4 - вкладені об'єкти
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] | коли ключ динамічний або містить спецсимволи |
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.