> Что такое слабая ссылка в WeakSet и WeakMap в JavaScript (JavaScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: ООО Снэп АйТи
Стек: JavaScript
> Пример ответа
Слабая ссылка (weak reference) - это ссылка на объект, которая не препятствует его сборке мусора (garbage collection). В JavaScript WeakSet и WeakMap хранят именно такие ссылки на свои ключи (в WeakMap ключи - объекты, в WeakSet - объекты-значения). Если на объект больше нет других сильных ссылок (например, из переменных или других коллекций), сборщик мусора может удалить его из памяти, и запись автоматически исчезнет из WeakSet/WeakMap.
Пример с WeakMap:
JAVASCRIPTlet obj = { data: 'secret' };const wm = new WeakMap();wm.set(obj, 'value');obj = null; // удаляем сильную ссылку// Теперь obj может быть собран сборщиком мусора,// и запись в wm будет удалена автоматически.
Ключевые особенности:
-
Нельзя перебрать элементы (нет методов
keys(),values(),entries(),size), так как содержимое может измениться в любой момент из-за GC. -
Применяются для кэширования, хранения метаданных или приватных данных, связанных с объектами, без утечек памяти.
-
В WeakSet ключи - только объекты (не примитивы), в WeakMap ключи - только объекты, значения - любые типы.
> Похожие задачи по frontend
Как выполняется функция с учетом хостинга в JavaScript
Как сборщик мусора находит неиспользуемые объекты в JavaScript
Как использовать try-catch для обработки ошибок при парсинге JSON в JavaScript
Как реализовать проверку кратности с остатком от деления в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью