Шрифт:
Если в теле цикла
5.5.4.1. Порядок перечисления свойств
Спецификация ECMAScript не определяет порядок, в каком цикл
В абзаце выше описывается описывается порядок перечисления свойств "простых" объектов. Однаков разных реализациях порядок перечисления может отличаться, если:
• объект наследует перечислимые свойства;
• объект имеет свойства, которые являются целочисленными индексами массива;
• использовалась инструкция
• использовался метод
Обычно (но не во всех реализациях) унаследованные свойства (раздел 6.2.2) перечисляются после всех неунаследованных, «собственных» свойств объекта, но они также перечисляются в порядке их определения. Если объект наследует свойства более чем от одного «прототипа» (раздел 6.1.3) - например, когда в его «цепочке прототипов» имеется более одного объекта, - свойства каждого объекта-прототипа в цепочке перечисляются в порядке их создания перед перечислением свойств следующего объекта. Некоторые (но не все) реализации перечисляют свойства массива в порядке возрастания чисел, а не в порядке их создания, но при наличии в массиве свойств с нечисловыми именами происходит возврат к перечислению в порядке создания свойств, то же самое происходит и в случае разреженных массивов (т. е. когда в массиве отсутствуют некоторые элементы).
5.6. Переходы
Еще одной категорией инструкций языка JavaScript являются инструкции перехода. Как следует из названия, эти инструкции заставляют интерпретатор JavaScript переходить в другое место в программном коде. Инструкция
Инструкция
Подробнее все эти инструкции перехода описываются в следующих подразделах.
5.6.1. Метки инструкций
Любая инструкция может быть помечена указанным перед ней идентификатором и двоеточием:
любую инструкцию, однако помечать имеет смысл только инструкции, имеющие тело, такие как циклы и условные инструкции. Присвоив имя циклу, его затем можно использовать в инструкциях
Идентификатор, используемый в качестве метки инструкции, может быть любым допустимым идентификатором JavaScript, кроме зарезервированного слова. Имена меток отделены от имен переменных и функций, поэтому в качестве меток допускается использовать идентификаторы, совпадающие с именами переменных или функций. Метки инструкций определены только внутри инструкций, к которым они применяются (и, конечно же, внутри вложенных в них инструкций). Вложенные инструкции не могут помечаться теми же идентификаторами, что и вмещающие их инструкции, но две независимые инструкции могут помечаться одинаковыми метками. Помеченные инструкции могут помечаться повторно. То есть любая инструкция может иметь множество меток.
5.6.2. Инструкция break
Инструкция
Поскольку инструкция break приводит к выходу из цикла или инструкции