Sobes.tech
Junior
108
questionbank

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

AI答案

sobes.tech AI

Ссылочные типы данных в JavaScript (Объекты, Массивы, Функции) не хранят свои значения непосредственно в переменной. Вместо этого переменная хранит ссылку (адрес) на место в памяти, где находится само значение.

Ключевые особенности:

  • Передача по ссылке: При присвоении или передаче функции, копируется только ссылка, а не само значение. Изменение данных по одной ссылке отразится на всех переменных, ссылающихся на тот же объект в памяти.
  • Мутабельность: Значение ссылочного типа может быть изменено после создания.
  • Сравнение: Оператор == или === для ссылочных типов сравнивает ссылки, а не значения. Два объекта с одинаковым содержимым, но разными ссылками, будут считаться разными.

Пример:

// Создаем объект
const obj1 = { name: 'Alice' };

// Присваиваем obj2 ссылку на тот же объект в памяти
const obj2 = obj1;

// Изменяем свойство через obj2
obj2.name = 'Bob';

// Изменение отразилось на obj1, потому что они ссылаются на один объект
console.log(obj1.name); // Выведет 'Bob'

// Сравнение ссылок
console.log(obj1 === obj2); // Выведет true

// Создаем новый объект с тем же содержимым, но в другом месте памяти
const obj3 = { name: 'Bob' };

// Сравнение разных ссылок
console.log(obj1 === obj3); // Выведет false