Что такое ключ объекта в JavaScript?
Объекты и прототипы
Ключ объекта в JavaScript — это идентификатор свойства. Ключами обычного объекта могут быть строки и символы; всё остальное приводится к строке.
Какие бывают ключи
- Строки — основной тип ключей.
- Symbol — уникальные ключи (для «скрытых»/системных свойств).
- Числа и другое — приводятся к строке:
const obj = {};
obj[1] = 'a';
obj['1'] = 'b';
obj[1]; // 'b' — 1 и '1' стали одним ключом '1'
obj[true] = 'x';
Object.keys(obj); // ['1', 'true'] — всё строкиSymbol как ключ
const id = Symbol('id');
const user = { [id]: 123, name: 'Ann' };
user[id]; // 123 — не пересекается со строковыми ключамиСимвольные ключи не попадают в Object.keys/for...in — удобно для «служебных» свойств.
Вычисляемые ключи
Ключ можно задать выражением в квадратных скобках:
const key = 'dynamic';
const obj = { [key]: 1, [`${key}_2`]: 2 };Map — ключи любого типа
Если нужны ключи-объекты или другие типы без приведения к строке — используют Map.
Коротко для собеседования
Ключ объекта — идентификатор свойства. У обычного объекта ключи — строки и символы; числа/булевы приводятся к строкам (obj[1] и obj['1'] — один ключ). Symbol даёт уникальные «скрытые» ключи. Для ключей любого типа без приведения — Map.