> Как хранятся коллекции по иерархии - как объекты или ссылки (JavaScript)
Уровень: senior · Роль: frontend · Язык: JavaScript · Категория: Технические вопросы
Компании: TrendTech
Стек: Node.js, JavaScript
> Пример ответа
В JavaScript коллекции (массивы, объекты, Map, Set) хранятся как ссылки, а не как сами объекты. Когда вы присваиваете коллекцию переменной или передаёте её в функцию, в памяти сохраняется адрес (указатель) на область, где лежат данные, а не копия этих данных.
Пример:
JAVASCRIPTconst arr1 = [1, 2, 3];const arr2 = arr1; // копируется ссылка, а не массивarr2.push(4);console.log(arr1); // [1, 2, 3, 4] - исходный массив изменился
Это же правило действует для объектов, Map, Set и других не примитивных типов. Примитивы (числа, строки, булевы значения) хранятся как значения - их копирование создаёт независимую копию.
В контексте Node.js и JavaScript это важно учитывать при работе с мутациями данных: изменение коллекции через одну ссылку отражается на всех ссылках, указывающих на ту же область памяти. Для создания независимой копии используют spread ([...arr], {...obj}), Object.assign() или structuredClone().
> Похожие задачи по JavaScript
Какие архитектурные шаблоны существуют
Когда требуется денормализация базы данных и хранение одних и тех же данных в разных таблицах или коллекциях
Как проходят этапы разработки: спринты, дели, ретроспективы
Как Node.js работает с файловой системой и какие библиотеки используются
> Похожие задачи по frontend
Применял ли ты архитектурные шаблоны в коде
Какие архитектурные шаблоны существуют
Как проходят этапы разработки: спринты, дели, ретроспективы
Как выявлять и исправлять утечки памяти
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью