Другой оператор, for...in, выполняет утверждения
несколько раз, но используется для манипулирования объекта.
См. Оператор манипулирования объекта.
Оператор for
Цикл for повторяет утверждения,
до тех пор пока указанное условие ложно. Цикл for JavaScript
for подобен циклу for Java и традиционному циклу for языка
C. Оператор for выглядит следующим образом:
for ([initial-expression;]
[condition;]
[increment-expression])
{
statements
}
Последовательность выполнения цикла for следующия:
1. Выражение initial-expression
служит для инициализации переменной счетчика, которую можно
создать с помощью опреатора var.
2. Выражение condition вычисляется на каждой
итерации цикла. Если значение выражения condition равно истенно,
выполняются утверждения в теле цикла. Если значение выражения
condition равно ложь, то цикл forпрекращается. Если выражения
condition пропущено, оно считается равным истинна, тогда цикл
продолжается до ошибки или до оператора break.
3. Выражение increment-expression вообще
используется для изменения значения переменной счетчика.
4. statements вычисляют и контралируют возвращение
шага 2.
Пример.
Следующая функция содержит оператор for, который считает число
выбранных элементов в списке (объект select позволяет выбрать
несколько элементов). Оператор for объявляет переменный i
и присваевает ей ноль. Если i меньше чем число элементов в
объекте select, то выполняется оператор if, и i увеличевается
на 1 после каждой итерации.
<SCRIPT>function howMany(selectObject)
{ var numberSelected=0
for (i=0; i < selectObject.options.length; i++) {
if (selectObject.options[i].selected==true) numberSelected++
}
return numberSelected}</SCRIPT><FORM NAME="selectForm">
<P><B>Choose some music types, then click the
button below:</B>
<BR><SELECT NAME="musicTypes" MULTIPLE>
<OPTION SELECTED> R&B <OPTION> Jazz
<OPTION> Blues <OPTION> New Age <OPTION>
Classical <OPTION> Opera
</SELECT><P><INPUT TYPE="button"
VALUE="How many are selected?"
onClick="alert ('Number of options selected: ' + howMany(document.selectForm.musicTypes))">
</FORM>
|