PassFront
  1. PassFront
  2. База знаний
  3. Основы языка

Что такое ссылочные типы?

Основы языка

Ссылочные типы — это объекты (включая массивы и функции), которые хранятся в куче и передаются по ссылке, а не по значению.

Что относится

  • Объекты {}.
  • Массивы [].
  • Функции.
  • Date, Map, Set, RegExp и другие встроенные объекты.

Передача по ссылке

Переменная хранит не сам объект, а ссылку на него. Копирование переменной копирует ссылку, а не объект:

const a = { x: 1 };
const b = a;   // копия ссылки, тот же объект
b.x = 99;
a.x;           // 99 — общий объект

Сравнение — по ссылке

Два разных объекта с одинаковым содержимым не равны:

{} === {};              // false — разные ссылки
const o = {}; o === o;  // true — та же ссылка

Следствия

  • Мутация общего объекта видна везде, где на него ссылаются.
  • Для независимой копии нужно клонировать ({...obj}, structuredClone).
  • Аргумент-объект передаётся в функцию по ссылке — функция может его изменить.

Ссылочные против примитивов

Примитивы (number, string, ...) копируются по значению и иммутабельны; ссылочные — по ссылке и изменяемы.

Коротко для собеседования

Ссылочные типы — объекты, массивы, функции: хранятся в куче, передаются и сравниваются по ссылке. Копия переменной делит объект, мутация видна всем; сравнение === истинно только для одной и той же ссылки.

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