Назад к вопросам
АЙ-ТЕКО
Middle
3
Что знаете про сборщик мусора в JavaScript? Что такое утечки памяти и в каких случаях они могут происходить?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Сборщик мусора (Garbage Collector) в JavaScript автоматически освобождает память, занятую объектами, которые больше не доступны из кода. Он отслеживает объекты, на которые нет ссылок, и удаляет их, чтобы избежать переполнения памяти.
Утечки памяти возникают, когда объекты остаются в памяти, хотя они уже не нужны, из-за сохранения на них ссылок. Это приводит к росту потребления памяти и может замедлять приложение.
Типичные причины утечек:
- Глобальные переменные, которые не очищаются.
- Замыкания, удерживающие ссылки на большие объекты.
- Событийные слушатели, которые не удаляются после использования.
- Кэширование данных без ограничения размера.
Пример утечки через слушатель:
function setup() {
const element = document.getElementById('button');
element.addEventListener('click', () => {
// обработчик
});
}
// Если элемент удалён из DOM, но слушатель не удалён, память не освободится
Для предотвращения утечек важно удалять слушатели, очищать ссылки и следить за жизненным циклом объектов.