Почему в примере ниже правильный ответ 0, затем 1?

Почему при переборе ключей сначала выводится 0, а затем 1, а не по порядку?
63bbb7852fb52399810419.png
  • Вопрос задан
  • 285 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
В документации MDN к for..in прямо пишут, что порядок детерминирован и одинаков во всех браузерах/движках:
The traversal order, as of modern ECMAScript specification, is well-defined and consistent across implementations.

Within each component of the prototype chain, all non-negative integer keys (those that can be array indices) will be traversed first in ascending order by value, then other string keys in ascending chronological order of property creation.

Причем русскоязычная версия там же иначе описывает порядок обхода. Надо бы поправить перевод.

На Русском языке лучше прочитать про порядок свойств на learn.javascript.ru
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Правильный ответ - зависит от браузера. В спецификации порядок перебора ключей объекта не определён, разные браузеры в разные годы то сортировали ключи то нет.
То что сейчас большинство браузера сортирует - не говорит о том, что они и завтра будут сортировать.
Если вам важен порядок перебора используйте массив, например.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы