intermediate
Утечки памяти, WeakMap и WeakSet
Утечки listeners, таймеров, кэшей, detached DOM, удержание в замыканиях и слабые ассоциации.
Утечки возникают, когда данные остаются достижимыми после того, как перестали быть нужны. Типичные причины во frontend: забытые event listeners, intervals, глобальные кэши, detached DOM и замыкания с крупными графами.
Ключи `WeakMap` должны быть объектами; удерживаются слабо и не перечисляются — подходят для metadata, связанной с объектом, без блокировки сборки. `WeakSet` слабо отслеживает принадлежность объектов.
Weak collections не лечат утечки, если значение замыкает ключ или остаётся другая сильная ссылка.
На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.
Типовые ошибки: путать похожие API и забывать edge cases в live coding.
Компромисс часто между ясностью и производительностью или между безопасностью и удобством.
Чеклист:
- Очищайте ресурсы жизненного цикла.
- Ограничивайте размер сильных Map.
- Используйте WeakMap для metadata на объект.