Ответ 1
V8 design docs подразумевают, что поисковые запросы будут, по крайней мере, такими быстрыми, если не быстрее:
Большинство движков JavaScript используют словарическую структуру данных, как хранилище для свойств объекта - для каждого доступа к свойствам требуется динамический поиск для определения местоположения свойства в памяти. Эта подход делает доступ к свойствам в JavaScript, как правило, медленнее, чем доступ к переменным экземпляра на языках программирования, таких как Java и Smalltalk. В этих языках переменные экземпляра расположены при фиксированных смещениях, определенных компилятором из-за фиксированного объекта макет, определенный классом объекта. Доступ - это просто вопрос память или память, часто требующая только одной инструкции.
Чтобы сократить время, необходимое для доступа к свойствам JavaScript, V8 делает не использовать динамический поиск для доступа к свойствам. Вместо этого V8 динамически создает скрытые классы за кулисами. [...] В V8 изменяется объект его скрытый класс при добавлении нового свойства.
Похоже, что добавление нового ключа может быть немного медленнее, хотя из-за создания скрытого класса.