Какие типичные утечки памяти бывают в JavaScript и как их обнаружить?
Типичные утечки:
- Забытые таймеры (
setIntervalбезclearInterval) - Замыкания, удерживающие ссылки на большие объекты
- Отсоединённые DOM-узлы (detached DOM nodes) — элемент удалён из DOM, но на него есть ссылка в JS
- Глобальные переменные (случайные присвоения без
let/const) - EventListener без
removeEventListener - Кэши без ограничения размера
Обнаружение:
- Chrome DevTools → Memory → Heap Snapshot
- Performance Monitor → JS Heap Size
--expose-gc+process.memoryUsage()в Node.js