Относится ли Map к коллекциям?
Массивы и структуры данных
Да, `Map` относится к коллекциям — это встроенная в JavaScript структура-коллекция пар «ключ–значение», наряду с `Set`, `WeakMap` и `WeakSet`.
Коллекции в JavaScript
ES6 ввёл настоящие коллекции:
- Map — пары «ключ–значение» с ключами любого типа.
- Set — уникальные значения.
- WeakMap — Map со слабыми ссылками на ключи-объекты.
- WeakSet — Set со слабыми ссылками.
Почему Map — коллекция
Map — итерируемая структура для хранения набора элементов с методами управления:
const map = new Map();
map.set('a', 1);
map.get('a'); // 1
map.has('a'); // true
map.size; // 1
map.delete('a');
for (const [key, value] of map) {
// итерация — признак коллекции
}Отличия от объекта
Хотя объект тоже хранит пары, Map — специализированная коллекция: ключи любого типа, гарантированный порядок, свойство size, прямая итерация, отсутствие прототипных ключей.
WeakMap как коллекция
WeakMap тоже коллекция, но с ключами-объектами и слабыми ссылками (не мешает сборке мусора), не итерируется и не имеет size.
Коротко для собеседования
Да, Map — встроенная коллекция «ключ–значение» (ES6), наряду с Set, WeakMap, WeakSet. Итерируема, имеет size, ключи любого типа и сохраняет порядок — этим отличается от обычного объекта.