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

В чем разница между Map и WeakMap

Основное отличие Map от WeakMap в том, как они хранят ключи и управляют памятью:

  1. Ключи:

    • В Map ключами могут быть любые типы данных (объекты, примитивы).
    • В WeakMap ключи — только объекты.
  2. Сборка мусора:

    • Map хранит ключи сильно, предотвращая их удаление, даже если объект-ключ больше не используется.
    • WeakMap не препятствует сборке мусора: если объект-ключ удаляется, запись автоматически исчезает из WeakMap.
  1. Итерация и методы:
    • Map поддерживает keys(), values(), entries(), size.
    • WeakMap не предоставляет методов для итерации или получения размера.

Пример:

javascript
let obj = { id: 1 };
const map = new Map();
const weakMap = new WeakMap();

map.set(obj, 'value'); // Объект остаётся в памяти, пока есть в Map
weakMap.set(obj, 'value'); // Если obj = null, запись удалится при сборке мусора

Использование:

  • WeakMap — для приватных данных или ассоциаций с объектами, которые могут быть удалены.
  • Map — когда нужен перебор или ключи любого типа.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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