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

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее