Ответ 1
Да, они хэши. Реализация отличается в разных браузерах. Несмотря на множество статей, в которых утверждается, что объекты не являются хешами, они очень похожи на хэши и поэтому могут использоваться как таковые.
Я должен был доказать это, запустив тесты производительности:
Способ чтения этих тестов заключается в том, что если при увеличении размера объекта нет разницы в производительности в секунду, то это означает, что объекты являются хешами. Определяющей характеристикой хеша является то, что сложность каждой операции составляет O (1), независимо от того, является ли она быстрее или медленнее по сравнению с другими операциями.
тесты:
http://jsperf.com/objectsashashes/2 (100 ключей)
http://jsperf.com/objectsashashes/3 (100 тыс. ключей)
http://jsperf.com/objectsashashes/ (1 миллион ключей)
http://jsperf.com/objects-as-hashes-300-mil (ключи 10 м)
Примечание. Каждый браузер работает быстрее/медленнее при разных операциях. Это, кажется, меняется между выпусками и из года в год.