JavaScript для цикла - PullRequest
       1

JavaScript для цикла

1 голос
/ 15 июля 2011

Один из моих коллег создал глупую ошибку в mongo mapreduce, он должен был создать объект, но на самом деле передал строку "{}".Странно было то, что скрипт не разбился, а фактически перебрал всю строку, поэтому я провел некоторое исследование и обнаружил следующее:

Сценарий x="bla"; for (i in x) { alert(i); }; работает в разных браузерах следующим образом:

  • IE (8): - (без предупреждений)
  • Chrome: 0 1 2
  • Firefox (более старый): 0 1 2 vBlength
  • Firefox5: 0 1 2
  • MongoDB: 0 1 2 trim ltrim rtrim

Я прекрасно знаю, что это недопустимый синтаксис, просто чистое любопытство , кто-нибудьзнаете, почему браузеры ведут себя так, как они?Меня особенно интересует поведение MongoDB.

1 Ответ

5 голосов
/ 15 июля 2011

На самом деле это полностью допустимый синтаксис.

Использование цикла for ... in в JavaScript приведет не только к циклу над массивами, но и к свойствам (я просто индекс, а не фактическое значение в массиве).

Ознакомьтесь с документацией в сети разработчиков Mozilla:

для ... в - MDN Docs

Их пример должен прояснить ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...