Операторы цикла
Цикл - это набор команд, которые повторяются, пока указанное условие не выполнено. JavaScript поддерживает две формы цикла: for и while. Кроме того, операторы break и continue, используются вмести с циклами.
Другой оператор, 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 после каждой итерации.
function howMany(selectObject) {
var numberSelected=0
for (i=0; i < selectObject.options.length; i++)
{
if (selectObject.options[i].selected==true)
numberSelected++
}
return numberSelected}
Choose some music types, then click the button below:
R&B
Jazz
Blues
New Age
Classical
Opera
Оператор while
Оператор while повторяет цикл, пока указанное условие равно истинна. Оператор while выглядит следующим образом:
while (condition)
{statements}
Если условие становится ложным, то утверждения внутри цикла прекращают выполняться.
Условия проверяется только тогда, когда утверждения в цикле были выполнены, и цикл должен повториться.
Пример 1. Следующий опрератор while повторяется, до тех пор пока n - меньше чем три.
n = 0
x = 0
while( n < 3 )
{ n ++ x += n}
Каждая итерация цикла увеличивает n и прибавляет его к x. Следовательно, x и n принемают следующие значения:
После первой итерации: n = 1 и x = 1
После второй итерации: n = 2 и x = 3
После третьей итерации: n = 3 и x = 6
После завершения третьей итерации, условие n<3 больше не истинно, поэтому цикл прекращается.
Пример 2: бесконечный цикл. Проверьте, что условие в цикле в конечном счете становится ложным; иначе, цикл никогда не прекратиться. Утверждения в следующем цикле while выполняются бесконечно, потому что условие никогда не становится ложным:
while (true)
{
alert("Hello, world")
}
Оператор break
Оператор break завершает текущий цикл while или for и передает управление программы первому опретору после цикла. Оператор break выглядит следующим образом:
break
Пример. Следующая функция имеет оператор break, который завершает цикл while, когда i равно 3, и затем возвращает значение 3 * x.
function testBreak(x) {
var i = 0
while (i < 6) {
if (i == 3)
break
i++ }
return i*x}
Оператор continue
Оператор continue передает управление оператору проверки истинности условия в цикле while и оператору обновления значения счетчика в цикле for, и продолжает выполнение цикла. Оператор continue выглядит следующим образом:
continue
Пример. Следующий пример показывает цикл while, который имеет оператор continue, который выполняется, когда значение i равно 3. Таким образом, n принемает значения 1, 3, 7, и 12.
i = 0
n = 0
while (i < 5) {
i++
if (i == 3)
continue
n += i
}
Оператор манипулирования объекта
JavaScript имеет способы управления объектами: операторы for...in, new, this и with.
Оператор for...in
Оператор for...in присваивает переменной поочередно все свойства объекта. Для каждого свойства JavaScript выполняет указанные утверждения. Оператор for...in выглядит следующим образом:
for (variable in object)
{ statements
}
Пример. Следующая функция берет ее как аргумент объект и имя объекта. Затем повторяет все свойства объекта и возвращает строку, в которую внесен список имени свойства и значения.
function dump_props(obj, obj_name) {
var result = ""
for (var i in obj) {
result += obj_name + "." + i + " = " + obj[i] + "
"
}
result += ""
return result}
Пример для машины марки Ford модели Mustang возростом 69:
Оператор new
Оператор new позволяет вам, создавать образец определяемого пользователем типа объекта. Используйте, new следующим образом:
ObjectName = new
objectType
(param1
[, param2]
...
[, paramN])
Ключевое слово this
Используйте this, чтобы обратиться к текущему объекту. Вообще, this обращается к вызывающему объекту в методе. Используйте this следующим образом:
this [.propertyName]
Пример. Пусть функция, названная validate, проверяет правильность свойства значения объекта:
function validate(obj, lowval, hival) {
if ((obj.value < lowval) || (obj.value > hival))
alert("Invalid Value!")
}
Вы можете вызывать validate в каждом элементе формы обработчика событий onChange, используя this, как показано в следующем примере:
Enter a number between 18 and 99:
Оператор with
Оператор with устанавливает объект для набора утверждений. Внутри набора утверждений, любые ссылки на свойства без явного указания объекта предпологают объект по умолчанию. Оператор with выглядит следующим образом:
with (object)
{
statements
}
Пример. Следующий оператор with определяет объект Math. Следующие утверждения, оператором with обращаются к свойству PI и методам cos и sin, без определения объекта Math. JavaScript принимает объект Math для этих ссылок.
var a, x, y
var r=10
with (Math) {
a = PI * r * r
x = r * cos(PI)
y = r * sin(PI/2)
}
Комментарии
Комментарии - это авторская система обозначений, которая объясняит, что делает код. Комментарии игнорируются интерпретатором. JavaScript поддерживает комментарии Java:
Комментарии однострочные , предшествуют двойной наклонной чертой вправо (//).
Комментарии многострочные, предшествуют /* и сопровождается */.
Пример .. следующий пример показывает два различных комментария.
// Это - комментарий единственный линия.
/* Это - многострочный комментарий.
Здесь вы можете разместить любой длины строку.*/