🔥

Тред (@mraleph)


начнем утро головоломкой из разряда "и на старуху бывает проруха" jsperf.com/es6-map-vs-obj…

... напихали в объект кучу свойств obj[keys[i]] = i и почему-то читать эти свойства быстрее c ключами из Object.keys(obj), а не из keys

отгадка на загадку: дело в том, что obj[key] быстрее всего работает когда key - это интернализованная строка.

... массив keys содержит строки результаты конкатенации, которые в V8 не интернализованы, а objectKeys содержит интернализованные строки.

... потому что имена свойств внутри объекта V8 хранит в интернализованных виде -> Object.keys(obj) возвращает массив интернализованных строк

Вячеслав ЕгоровВячеслав Егоров