Что лучше new Map() или Object.create(null)?

191
13 октября 2021, 13:00

Понятно, что в общем случае new Map() гибче, поскольку позволяет различать числовые и строковые ключи, а также использовать ключи любых типов, в том числе ссылочных.

Но что если ключом всегда является строка?

Очевидно, что у объекта куда более компактное обращение к свойствам по свойствам по сравнению с картой - квадратные скобочки, а не вызовы методов, соответственно оказываются применимы операторы в духе ++ и +=.

У пустого объекта {} есть всякие штуки в прототипе типа toString и __proto__, что мешает полноценному его использованию в качестве словаря, но Object.create(null) этих недостатков вроде бы лишён. По скорости объект со словарём я никогда не сравнивал, хотя, наверное, стоило бы.

В общем, на какие критерии стоит обратить внимание при выборе между ними и что скорее всего лучше использовать?

READ ALSO
Как заставить браузер без задержки отображать элементы добавленные в цикле javascript

Как заставить браузер без задержки отображать элементы добавленные в цикле javascript

Есть задача, по клику на кнопке начать в цикле выполнение тяжелых вычислений (скажем поиск простых чисел) с постепенным выводом результата...

101
JavaScript TextArea

JavaScript TextArea

Пытаюсь написать скрипт который будет заполнять формуВот страница с формой https://www

215
Как для datepicker установить + или - дату от выбранной на календаре, а не от сегодняшней?

Как для datepicker установить + или - дату от выбранной на календаре, а не от сегодняшней?

Есть календарик datepickerНужно сохранить выбранную дату и другую (например -50d от ВЫБРАННОЙ)

110
Странное изменение массива JavaScript

Странное изменение массива JavaScript

При запуске этого кода, в консоль выводится: Объясните, пожалуйста, почему массив изменяется до запуска forEach и почему в консоли он выглядит...

75