В JavaScript:
Что такое Map и Set в JavaScript? В чём их отличие друг от друга и от обычного объекта?
В JavaScript:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В JavaScript:
- Map — коллекция пар ключ-значение, где ключи могут быть любого типа (объекты, функции, примитивы). Map сохраняет порядок вставки элементов и предоставляет методы для удобной работы.
- Set — коллекция уникальных значений любого типа. В Set нет повторяющихся элементов.
- Обычный объект (Object) — тоже хранит пары ключ-значение, но ключи всегда строки (или символы). Порядок ключей не гарантируется, и есть потенциальные конфликты с унаследованными свойствами.
Отличия:
- Map позволяет использовать любые типы ключей, Object — только строки/символы.
- Map сохраняет порядок вставки, Object — нет гарантии.
- Set хранит только уникальные значения, Object и Map — пары ключ-значение.
Пример:
const map = new Map();
map.set({}, 'value'); // ключ — объект
const set = new Set();
set.add(1);
set.add(1); // не добавится второй раз
const obj = {};
obj['key'] = 'value';