Sobes.tech
Назад к вопросам
Middle
3

Что знаете про сборщик мусора в JavaScript? Что такое утечки памяти и в каких случаях они могут происходить?

Компании, где спрашивали
АЙ-ТЕКОАЙ-ТЕКО

Ответ от нейросети

sobes.tech AI

Сборщик мусора (Garbage Collector) в JavaScript автоматически освобождает память, занятую объектами, которые больше не доступны из кода. Он отслеживает объекты, на которые нет ссылок, и удаляет их, чтобы избежать переполнения памяти.

Утечки памяти возникают, когда объекты остаются в памяти, хотя они уже не нужны, из-за сохранения на них ссылок. Это приводит к росту потребления памяти и может замедлять приложение.

Типичные причины утечек:

  • Глобальные переменные, которые не очищаются.
  • Замыкания, удерживающие ссылки на большие объекты.
  • Событийные слушатели, которые не удаляются после использования.
  • Кэширование данных без ограничения размера.

Пример утечки через слушатель:

function setup() {
  const element = document.getElementById('button');
  element.addEventListener('click', () => {
    // обработчик
  });
}
// Если элемент удалён из DOM, но слушатель не удалён, память не освободится

Для предотвращения утечек важно удалять слушатели, очищать ссылки и следить за жизненным циклом объектов.