Понятно, что в общем случае new Map() гибче, поскольку позволяет различать числовые и строковые ключи, а также использовать ключи любых типов, в том числе ссылочных.
Но что если ключом всегда является строка?
Очевидно, что у объекта куда более компактное обращение к свойствам по свойствам по сравнению с картой - квадратные скобочки, а не вызовы методов, соответственно оказываются применимы операторы в духе ++ и +=.
У пустого объекта {} есть всякие штуки в прототипе типа toString и __proto__, что мешает полноценному его использованию в качестве словаря, но Object.create(null) этих недостатков вроде бы лишён. По скорости объект со словарём я никогда не сравнивал, хотя, наверное, стоило бы.
В общем, на какие критерии стоит обратить внимание при выборе между ними и что скорее всего лучше использовать?
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники