PassFront
  1. PassFront
  2. База знаний
  3. Объекты и прототипы

Что такое ключ объекта в 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.

Другие вопросы раздела