Встречается на собеседованиях • сегодня

Как работает garbage collector в JavaScript

В JavaScript garbage collector (GC) автоматически освобождает память, занятую объектами, которые больше не используются. Основной механизм — mark-and-sweep:

  1. Mark: GC помечает все достижимые объекты (те, на которые есть ссылки из глобальной области или активных функций).
  2. Sweep: Удаляет неотмеченные (недостижимые) объекты.

Пример утечки памяти:

javascript
function createLeak() {
  const hugeArray = new Array(1000000).fill('leak');
  // Утечка: функция сохраняет ссылку даже после завершения
  return function() { console.log(hugeArray[0]); };
}
const leakedFn = createLeak(); // `hugeArray` не удалится, пока жива `leakedFn`

Как избежать:

  • Обнуляй ссылки: leakedFn = null.
  • Используй слабые ссылки (WeakMap, WeakSet).
  • Осторожно с замыканиями и глобальными переменными.

Node.js использует V8's GC, который дополнительно оптимизирован через поколения (Generational GC) и инкрементальную сборку.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы