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