4.13.5. Оператор «запятая» (,)
Оператор «запятая» (,) является двухместным оператором и может принимать операнды любого типа. Он вычисляет свой левый операнд, вычисляет свой правый операнд и возвращает значение правого операнда. То есть следующая строка:
i=0, j=1, k=2;
вернет значение 2 и практически эквивалентна строке:
і = 0; j=1; k = 2;
Выражение слева вычисляется всегда, но его значение отбрасывается, поэтому применять оператор запятая имеет смысл только ради побочного эффекта левого операнда. Единственным типичным применением оператора запятая является его использование в циклах for (раздел 5.5.3) с несколькими переменными цикла:
// Первая запятая ниже является частью синтаксиса инструкции var
// Вторая запятая является оператором: она позволяет внедрить 2 выражения (i++ и j--)
// в инструкцию (цикл for), которая ожидает 1 выражение.
for(var i=0,j=10; і < j; i++,j --)
console.log(i+j);
5
Инструкции
В главе 4 выражения были названы фразами языка JavaScript. По аналогии инструкции можно считать предложениями на языке JavaScript, или командами. Как в обычном языке предложения завершаются и отделяются друг от друга точками, так же и инструкции JavaScript завершаются точками с запятой (раздел 2.5). Выражения вычисляются и возвращают значение, а инструкции выполняются, чтобы что-то происходило.
Чтобы «что-то происходило», можно вычислить выражение, имеющее побочные эффекты. Выражения с побочными эффектами, такие как присваивание и вызовы функций, могут играть роль самостоятельных инструкций - при таком использовании их обычно называют инструкциями-выражениями. Похожую категорию инструкций образуют инструкции-объявления, которые объявляют новые переменные и определяют новые функции.
Программы на языке JavaScript представляют собой не более чем последовательности выполняемых инструкций. По умолчанию интерпретатор JavaScript выполняет эти инструкции одну за другой в порядке их следования. Другой способ сделать так, чтобы «что-то происходило», заключается в том, чтобы влиять на этот порядок выполнения по умолчанию, для чего в языке JavaScript имеется несколько инструкций, или управляющих конструкций, специально предназначенных для этого:
• Условные инструкции, такие как if и switch, которые заставляют интерпретатор JavaScript выполнять или пропускать другие инструкции в зависимости от значения выражения.
• Инструкции циклов, такие как while и for, которые многократно выполняют другие инструкции.
• Инструкции переходов, такие как break, return и throw, которые заставляют интерпретатор выполнить переход в другую часть программы.
В разделах, следующих далее, описываются различные инструкции языка JavaScript и их синтаксис. Краткая сводка синтаксиса инструкций приводится в табл. 5.1, в конце главы. Программа на языке JavaScript - это просто последовательность инструкций, разделенных точками с запятой, поэтому, познакомившись с инструкциями JavaScript, вы сможете писать программы на этом языке.
5.1. Инструкции-выражения
Простейший вид инструкций в JavaScript - это выражения, имеющие побочные эффекты. (Загляните в раздел 5.7.3, где описывается инструкция-выражение, не имеющая побочных эффектов.) Инструкции такого рода мы рассматривали в главе 4. Основной категорией инструкций-выражений являются инструкции присваивания. Например:
greeting = "Hello " + name;
і *= 3;
Операторы инкремента и декремента, ++ и -- схожи с инструкциями присваивания. Их побочным эффектом является изменение значения переменной, как при выполнении присваивания:
counter++;
Оператор delete имеет важный побочный эффект - он удаляет свойство объекта. Поэтому он почти всегда применяется как инструкция, а не как часть более сложного выражения:
delete о.х;
Вызовы функций - еще одна большая категория инструкций-выражений. Например:
alert(greeting);
window.close();