Sobes.tech
Middle
13

Что такое Map и Set в JavaScript? В чём их отличие друг от друга и от обычного объекта?

Компании, где спрашивали
AstonAston

Ответ от нейросети

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';