for(i = 0; і < a.length; a[i++] = 0) ;
В этом цикле вся работа выполняется выражением a[i++] = 0, и тело цикла здесь не требуется. Однако синтаксис JavaScript требует, чтобы цикл имел тело, поэтому здесь использована пустая инструкция - просто точка с запятой.
Обратите внимание, что ошибочное добавление точки с запятой после закрывающей круглой скобки в инструкции for, while или if может вызывать появление досадных ошибок, которые сложно обнаружить. Например, следующий фрагмент наверняка будет делать не совсем то, что предполагал автор:
if ((а == 0) || (Ь == 0)); // Ой! Эта строка ничего не делает...
о = null; // а эта будет выполняться всегда.
Если вы собираетесь намеренно использовать пустую инструкцию, нелишним будет добавить комментарий, поясняющий ваши намерения. Например:
for(i = 0; і < a.length; a[i++] = 0) /* пустое тело цикла */;
5.3. Инструкции-объявления
Инструкции var и function являются инструкциями-объявлениями - они объявляют, или определяют, переменные и функции. Эти инструкции определяют идентификаторы (имена переменных и функций), которые могут использоваться повсюду в программе, и присваивают значения этим идентификаторам. Инструкции-объявления сами ничего особенного не делают, но, создавая переменные и функции, они в значительной степени определяют значение других инструкций в программе.
В подразделах, следующих ниже, описываются инструкции var и function, но они не дают исчерпывающего описания переменных и функций. Более подробная информация о переменных приводится в разделах 3.9 и 3.10, а полное описание функций - в главе 8.
5.3.1. Инструкция var
Инструкция var позволяет явно объявить одну или несколько переменных. Инструкция имеет следующий синтаксис:
var имя_1 [ = значение_1] [ ..... имя_n [= значение_n]]
За ключевым словом var следует список объявляемых переменных через запятую; каждая переменная в списке может иметь специальное выражение-инициализатор, определяющее ее начальное значение. Например:
var і; // Одна простая переменная
var j = 0; // Одна переменная, одно значение
va гр, q; // Две переменные
var greeting = "hello" + name; // Сложный инициализатор
var х = 2.34, у = Math.cos(0.75), r, theta; // Множество переменных
var х = 2, у = х*х; // Вторая переменная использует первую
var х = 2, // Множество переменных...
f = function(x) { return х*х }, // каждая определяется
у = f(х); //в отдельной строке
Если инструкция var находится внутри тела функции, она определяет локальные переменные, видимые только внутри этой функции. При использовании в программном коде верхнего уровня инструкция var определяет глобальные переменные, видимые из любого места в программе. Как отмечалось в разделе 3.10.2, глобальные переменные являются свойствами глобального объекта. Однако, в отличие от других глобальных свойств, свойства, созданные с помощью инструкции var, нельзя удалить.
Если в инструкции var начальное значение переменной не указано, то переменная определяется, однако ее начальное значение остается неопределенным (undefined). Как описывалось в разделе 3.10.1, переменные определены во всем сценарии или в функции, где они были объявлены, - их объявления «поднимаются» в начало сценария или функции. Однако инициализация переменной производится в той точке программы, где находится инструкция var, а до этого переменная имеет значение undefined.