> Как хранятся коллекции по иерархии - как объекты или ссылки (JavaScript)

Уровень: senior · Роль: frontend · Язык: JavaScript · Категория: Технические вопросы

Компании: TrendTech

Стек: Node.js, JavaScript

> Пример ответа

В JavaScript коллекции (массивы, объекты, Map, Set) хранятся как ссылки, а не как сами объекты. Когда вы присваиваете коллекцию переменной или передаёте её в функцию, в памяти сохраняется адрес (указатель) на область, где лежат данные, а не копия этих данных.

Пример:

JAVASCRIPT
const 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().

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью