Middle
13
Что такое Map и Set в JavaScript? В чём их отличие друг от друга и от обычного объекта?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В 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';