foundation

Объектные значения

Идентичность по ссылке, наборы свойств, массивы, функции как объекты и подводные камни wrapper-объектов.

Объекты (включая массивы и функции) — ссылочные значения. При присваивании копируется ссылка, и две переменные могут указывать на одну изменяемую структуру. `{}` === `{}` равно false, потому что идентичность разная, даже если форма совпадает.

Ключи свойств — строки или symbol (в Map допустимы любые ключи). `Object.is(a, a)` проверяет идентичность ссылки. Spread и `Object.assign` делают поверхностные копии — вложенные объекты остаются общими.

					const a = { nested: { count: 1 } };
const b = { ...a };
b.nested.count = 2;
console.log(a.nested.count); // 2
				

Выбирайте Map, когда ключи не строки/symbol или нужны надёжный size и порядок итерации без prototype pollution.

На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.

Типовые ошибки: путать похожие API и забывать edge cases в live coding.

Компромисс часто между ясностью и производительностью или между безопасностью и удобством.

Чеклист:

  • Объясните присваивание по ссылке.
  • Сравните идентичность объекта с равенством формы.
  • Отметьте ограничения поверхностного копирования.