WeakSet. В чем особенность? Какие свойства и методы есть? Как перебрать?
Этот вопрос проверяет понимание структуры данных WeakSet в JavaScript, ее особенностей, свойств и методов, а также подходов к перебору элементов.
Короткий ответ
WeakSet — это коллекция уникальных объектов, где каждый объект хранится с использованием слабой ссылки. Главная особенность WeakSet заключается в том, что он не удерживает ссылки на свои элементы, что позволяет сборщику мусора автоматически удалять объекты, если на них больше нет ссылок. Методы WeakSet включают add(), delete() и has(), однако его нельзя перебрать, так как WeakSet не предоставляет итераторов.
Длинный ответ
WeakSet в JavaScript — это коллекция уникальных объектов, предназначенная для хранения значений с использованием слабых ссылок. Основные особенности WeakSet:
Уникальные значения: В WeakSet могут храниться только уникальные объекты. Если вы попытаетесь добавить объект, который уже существует в WeakSet, он просто проигнорируется.
Слабые ссылки: Поскольку WeakSet использует слабые ссылки на свои элементы, если объект больше не имеет сильных ссылок, он может быть удален сборщиком мусора. Это делает WeakSet полезным для хранения временных данных, связанных с объектами, без риска утечек памяти.
Методы WeakSet:
add(value): Добавляет объект в WeakSet.
delete(value): Удаляет объект из WeakSet.
has(value): Проверяет, существует ли объект в WeakSet.
Отсутствие итераторов: Как и в случае с WeakMap, WeakSet не предоставляет методов для перебора элементов. Это значит, что вы не можете использовать forEach(), keys(), values() или другие методы для итерации по элементам.
WeakSet идеально подходит для сценариев, когда вам нужно отслеживать уникальные объекты, например, когда вы хотите хранить временные ссылки на DOM-элементы или объекты в памяти, которые могут быть автоматически очищены, когда они больше не нужны.