-
это команда языка, указывающая интерпретатору JavaScript,
что необходимо выполнить то или иное действие.
После оператора принято ставить точку с запятой. Делать это не обязательно, если в каждой строке программы записан только один оператор. Тем не менее, для единообразия точку с запятой лучше ставить после каждого оператора.
Далее мы подробно рассмотрим основные типы операторов JavaScript.
Оператор присваивания
Синтаксис:
переменная = выражение
Действие
Переменной, стоящей слева от знака =
,
присваивается значение выражения, стоящего справа.
Кроме общего вида оператора присваивания существуют также следующие формы записи присваивания:
a++ // эквивалентно a = a + 1 a-- // эквивалентно a = a - 1 a += b // эквивалентно a = a + b a -= b // эквивалентно a = a - b a *= b // эквивалентно a = a * b a /= b // эквивалентно a = a / b a %= b // эквивалентно a = a % b a <<= b // эквивалентно a = a << b a >>= b // эквивалентно a = a >> b a >>>= b // эквивалентно a = a >>> b a &= b // эквивалентно a = a & b a |= b // эквивалентно a = a | b a ^= b // эквивалентно a = a ^ b
Пример:
myDate = 25;
myDate += " марта";
// теперь значением myDate стала строка "25 марта"
if
Синтаксис:
if (условие) {операторы}
Действие
Вычисляется значение логического выражения в круглых скобках (условие
).
Если условие
истинно,
выполняется группа операторов в фигурных скобках;
если условие
ложно,
операторы в фигурных скобках не выполняются.
Круглые скобки в записи оператора if
обязательны. Фигурные скобки можно опустить, если в них заключен один оператор.
if ... else
Синтаксис:
if (условие) {операторы} else {операторы}
Действие
Вычисляется значение логического выражения в круглых скобках (условие
).
Если условие
истинно,
выполняется первая группа операторов в фигурных скобках (стоящая до ключевого слова
else
), а вторая группа не выполняется.
Если условие
ложно, то,
наоборот, выполняется вторая группа операторов (стоящая в фигурных скобках после
else
).
Круглые скобки в записи оператора if...else
обязательны. Фигурные скобки можно опустить, если в них заключен один оператор.
while
Синтаксис:
while (условие) {операторы}
Действие
Вычисляется значение логического выражения в круглых скобках (условие
).
Если условие
ложно,
операторы в фигурных скобках не выполняются;
управление передается следующему оператору в программе.
Если же условие
истинно, то
операторы
в фигурных скобках выполняются, а затем значение логического выражения
условие
вычисляется заново.
С новым значением логического выражения все повторяется c самого начала:
если это false
,
управление сразу передается следующему оператору в программе;
если true
, то
операторы
выполняются снова, и в очередной раз вычисляется значение логического выражения.
Так происходит до тех пор, пока условие
не станет равно
false
, после чего выполнение программы
продолжается с оператора, следующего за циклом.
Круглые скобки в записи оператора while
обязательны. Фигурные скобки можно опустить, если в них заключен один оператор.
Пример:
n=10;
while (n>0) {document.write(n+' ');n--}
Вот результат выполнения этого примера:
for
Синтаксис:
for (инициализация; условие; шаг) {операторы}
инициализация -
это
либо оператор var
,
либо оператор присваивания,
либо несколько операторов присваивания, разделенных запятыми,
условие -
это
логическое выражение,
шаг -
это
либо оператор присваивания,
либо несколько операторов присваивания, разделенных запятыми.
Действие
Цикл for
выполняется так:
условие
.
Если условие
ложно, выполнение
цикла for
на этом заканчивается.
Если условие
истинно, происходит следующее:
шаг
.
Круглые скобки в записи цикла for
обязательны. Фигурные скобки можно опустить, если в них заключен один оператор.
Обратите внимание:
в круглых скобках
(инициализация; условие; шаг)
точка с запятой применяется только дважды.
Внутри конструкций инициализация
и
шаг
операторы разделяются запятыми.
Пример.
for (i=0,j=10;i<10;i++,j--) alert(i*j)
В этом цикле на экран последовательно выводятся десять призведений:
0*
10, 1*
9, 2*
8 и т.д.
На стадии инициализации выполняются два оператора:
i=0
и
j=10
.
Шаг цикла тоже включает два оператора:
i++
и
j--
.
Данный цикл можно переписать проще, не используя j
:
for (i=0;i<10;i++) alert(i*(10-i))
for ... in
Синтаксис:
for (переменная in объект) {операторы}
Действие
Оператор for...in
организует цикл по всем свойствам объекта.
При каждом проходе по циклу переменная
будет содержать имя очередного свойства объекта,
а выражение
объект[переменная]
будет принимать значение свойства.
Круглые скобки в записи цикла for...in
обязательны. Фигурные скобки можно опустить, если в них заключен один оператор.
Примеры.
Этот цикл поочередно выдает имена всех свойств массива
arr
.
(Массив -
это тоже объект!
Имена свойств массива -
это индексы элементов массива,
а значения свойств -
это значения элементов.
Кроме того, любой массив имеет свойство length
.)
arr = new Array(); arr[0]="Элемент 0"; arr[8]="Элемент 8"; for (i in arr) alert('arr.'+i+' = '+arr[i]);
В следующем примере цикл поочередно выдает имена всех свойств объекта
Math
и их значения (математические константы).
Например, свойство PI имеет значение 3.14159265358979.
Внимание! Этот пример работает в браузерах Netscape 3.x, 4.0x и MSIE3.
А вот MSIE 4+ и Netscape 4.5+ не выдают ничего!
for (i in Math) alert('Math.'+i+' = '+Math[i]);
Действие
Оператор выхода из цикла break
используется только внутри циклов
for
,
for...in
,
while
.
Оператор break
прерывает нормальное выполнение
цикла. Выполнение программы продолжается с оператора, следующего за циклом.
Пример.
Выполнение этого цикла продолжается, пока пользователь не признается,
что больше не пьет по утрам:
s='Я больше не пью по утрам'; while(true) { if (s==prompt('Ваше наивысшее достижение?',s)) break; } alert ('Ну наконец-то!');
Действие
Оператор continue
используется только внутри циклов
for
,
for...in
,
while
.
Этот оператор вызывает переход к началу цикла.
Операторы, стоящие в цикле после continue
,
выполняются лишь в том случае, если не выполняется continue
.
Пример: этот скрипт -
интерактивная контрольная по истории.
Пользователю в цикле предлагаются вопросы -
элементы массива questions
.
Если ответ пользователя не совпадает с правильным ответом, хранящимся в массиве
answers
, то выполняется оператор
continue
;
программа возвращается к началу цикла и предлагает следующий вопрос.
Если пользователь отвечает правильно, то выполняются операторы,
стоящие в цикле после continue
.
questions=new Array ( /* вопросы */ );
answers=new Array ( /* правильные ответы */ );
for (i=0,score=0; i<questions.length; i++) {
if (answers[i]!=prompt(questions[i],"")) continue;
alert("Вы неплохо знаете историю!");
score++;
}
alert ("Число правильных ответов: "+score);
return
Синтаксис:
return;
return выражение;
Действие
Оператор возврата return
используется внутри функций.
Он передает управление из функции обратно в вызвавший ее фрагмент программы.
Если в одной функции есть несколько операторов возврата,
все они должны иметь одинаковый вид
(либо просто return
,
либо return выражение
).
Можно также использовать операторы
return true
и
return false
в обработчиках событий.
Примеры:
return
в функциях
return
в обработчиках событий
var
Синтаксис:
var переменная
var переменная = выражение
var переменная [= выражение] [,..., переменная [= выражение] ]
Действие
Оператор var
описывает новую переменную
и присваивает ей начальное значение.
Если требуется сделать какую-либо переменную локальной для конкретной функции,
то обязательно описать эту переменную оператором var
внутри функции. Если при этом переменная с тем же именем используется
также и вне данной функции, то, несмотря на совпадение имен,
это будут фактически две разные переменные.
Переменные, не описанные оператором var
внутри функций, будут доступны всей JavaScript-программе.
Такие переменные удобно описывать оператором var
в начале программы (но это не обязательно).
Также можно использовать var
в заголовках циклов
for
и
for...in
.
Однако в JavaScript (в отличие от C и Java) описанная таким образом переменная
будет локальной не для данного цикла, а для всей функции.
Примеры:
var k=1, str="Happy New Year!";
for (var i=0;i<10;i++) alert("i = "+i);
with
Синтаксис:
with (объект) {операторы}
Действие
Ключевое слово with
указывает интерпретатору JavaScript,
что объект
далее в программе можно опускать:
вместо объект.свойство
можно писать просто свойство
,
а вместо объект.метод -
просто метод
.
Действие with
распространяется на
операторы
в фигурных скобках.
(Фигурные скобки можно не писать, если в них заключен один оператор.)
Пример.
Пусть n
-
величина угла, выраженная в градусах, и надо определить сумму синуса и косинуса этого угла:
x = Math.sin(n*Math.PI/180) + Math.cos(n*Math.PI/180);С помощью
with
можно записать тот же самый оператор гораздо короче, "спрятав" объект
Math
:
with(Math) x = sin(n*PI/180) + cos(n*PI/180);
Copyright © 1999, Alexei Kourbatov