Базовые операторы

Операторы обычно заканчиваются точкой с запятой - ; (обозначает конец оператора). Операторы могут быть объединены в группу, тогда группа операторов заключается в фигурные скобки {...}. Группа операторов - это так называемый программный блок. Каждый оператор имеет собственный синтаксис. Синтаксис оператора - это набор правил, определяющих обязательные и допустимые для использования в данном операторе значения. Значения, присутствие которых является необязательным, при описании синтаксиса принято заключать в квадратные скобки: [...]. При несоблюдении правил синтаксиса произойдет ошибка компиляции. В этой части описаны различные типы операторов.

В предедущей части, мы рассмотрели выражения. Так вот выражения, могут быть и операторами. Правда не каждое выражение является оператором. В данном случае оператор имеет форму: выражение ;, т.е. выражение, за которым следует точка с запятой. В b=a=5; a=5 это правильное выражение, но само по себе оно не является оператором. А вот b=a=5; является правильным оператором. В остальной части руководства я буду писать expr для обозначения любого правильного выражения.

Итак давайте рассмотрим остальные операторы:

IF

Структура IF это одна из важнейших возможностей многих языков, включая JS. Она позволяет организовать выполнение фрагментов кода по условию.
Синтаксис:

if (expr) statement

Вычисляется логический результат "expr" . Если expr равно TRUE(истина), то JS выполнит "statement", а если FALSE(ложь) - проигнорирует.
   Следующий пример выведет, в документ, фразу a больше b если a больше b:

if (a > b)document.write('a больше b');

Зачастую Вам требуется исполнить больше чем одно выражение по условию. Конечно, не надо окружать каждое выражение конструкцией IF. Вместо этого вы можете сгруппировать несколько выражений в блок выражений (не забудте заключить блок в фигурные скобки: {...}). К примеру, слежующий код не только выведет фразу, но и присвоит значение a переменной b:

if (a > b) { document.write('a больше b'); b = a; }

Выражение IF может иметь неограниченную степень вложенности в другие выражения IF, что позволяет Вам эффективно использовать выполнение по условию различных частей программы.
   Например:

if (a > b)
   if (a != c)
      if (a == d)document.write('a = d);
(В начало)

ELSE

Зачастую (на практике почти всегда) Вам требуется исполнить одно выражение, если соблюдается какое-либо условие и другое выражение если это условие не соблюдается. Вот для этого применияется ELSE. ELSE расширяет возможности IF по части обработки вариантов выражения, когда оно равно FALSE. Данный пример выведет фразу a больше b если a больше b, и a не больше b в противном случае:

if (a > b)document.write('a больше b');
   else document.write('a больше b');

Выражение ELSE выполняется только если выражение IF равно FALSE.

(В начало)

?

В JS есть возможность записать конструкцию:  IF(expr)statement; ELSE statement в другом виде:
   
   Синтаксис:
      (expr) ? ifstatement : elsestatement

   
   Выражение - ifstatement - выполняется если expr - TRUE, выражение - elsestatement - если FALSE.
   Данная конструкция работает немного быстрее стандартной. Ранее приведенный пример будет выглятеть так:

(a > b) ? document.write('a больше b') : document.write('a больше b');

Подытожа все сказанное, приведу один пример. В нем я использую все три оператора которые мы уже прошли. В зависимости от минут и секунд системного времени, на монитор будут выводится разные сообщения.

<HTML>
<HEAD>
<script language="JavaScript"> <!--
dey=new Date();
minut=dey.getMinutes();
sec=dey.getSeconds();
document.fgColor='#ff0000';
if(minut >=0 && minut <= 30){(sec>=0 && sec<=30)?
   document.write('Минут менше 30, и секуед меньше 30'):
      document.write('Минут менше 30, но секуед больше 30');
         }
else{(sec>=0 && sec<=30)?
   document.write('Минут больше 30,а секуед меньше 30'):
      document.write('Минут больше 30, и секуед больше 30');
   }
//-->
</script>
</HEAD>
</HTML>

Как Вы заметили, в данном примере, я использовал фигурные скобки {...}. Их можно опустить, они присутствуют только для того, что бы визуально отделить операторы IF, ELSE и ?.

(В начало)

WHILE

Оператор WHILE является оператором цикла. Цикл WHILE - простейший тип цикла в JS.
   Синтаксис:
      WHILE(expr) statement;

   
   Смысл оператора WHILE прост. Он предписывает JS выполнять вложенный(е) оператор(ы) до тех пор пока expr равно TRUE. Значение выражения проверяется каждый раз при начале цикла, так что если значение выражения изменится внутри цикла, то он не прервется до конца текущей итерации (выполнение всего блока вложенных операторов - это одна итерация). Иногда, если значение expr равно FALSE с самого начала, цикл не выполняется ни разу.
   Как и в IF, Вы можете сгруппировать несколько операторов внутри фигурных скобок.
   Вот пример использования етого оператора, в документ выводятся цыфры с 1 до 10:

i = 1;
while (i <= 10) document.writeln ( i ++ );
(В начало)

DO...WHILE

Цикл DO..WHILE очень похож на WHILE за исключением того, что значение логического выражения проверяется не до, а после окончания итерации. Основное отличие в том, что DO..WHILE гарантировано выполнится хотя бы один раз, что в случае WHILE не обязательно.
   Синтаксис:
   DO statement; WHILE (expr);

i = 0;
do document.write( i ) ; while ( i > 0 );

Этот цикл выполнится один раз, так как после окончания итерации будет проверено значение логического выражения, а оно равно FALSE (i не больше 0), и выполнение цикла завершится.

(В начало)

FOR

Циклы FOR - наиболее мощные циклы в JS.
    Синтаксис цикла FOR :
      FOR ([expr1]; [expr2]; [expr3]) statement

   
   Первое выражение (expr1) безусловно вычисляется(выполняется) в начале цикла. В начале каждой итерации вычисляется expr2. Если оно равно TRUE, то цикл продолжается и выполняются вложенный(е) оператор(ы). Если оно равно FALSE, то цикл заканчивается. В конце каждой итерации вычисляется(исполняется) expr3. Каждое из этих выражений может быть пустым. Если expr2 пусто, то цикл продолжается бесконечно (JS по умолчанию считает его равным TRUE). Это не так бесполезно, как могло бы показаться, так как зачастую вам требуется закончить выполнение цикла используя оператор BREAK в сочетании с логическим условием вместо использования логического выражения в FOR.
   Рассмотрим следующие примеры. Все они выводят номера с 1 по 10 :

      /* пример 1 */
for (i = 1; 10 >= i; i++) document.write( i );
      /* пример 2 */
for ( i = 1 ; ; i++ ) { if ( i > 10 ) break; document.write( i );}
      /* пример 3 */
i = 1;
for ( ; ; ) { if ( i > 10 ) break; document.write( i ); i++;}
      /* пример 4 */
for (i = 1; i <= 10; document.write( i ), i++) ;

Конечно, первый вариант кажется лучшим (или четвертый), но оказывавется возможность использования пустых выражений в цикле FOR зачастую оказывается полезной.

(В начало)

BREAK

Синтаксис:
   break;

   Оператор BREAK используется для выхода из какого-либо цикла, например из цикла FOR или WHILE. Выполнение цикла прекращается в той точке, в которой размещен этот оператор, а управление передается следующему оператору, находящемуся непосредственно после цикла. Пример использования оператора BREAK, я приводил в примере 2, 3 оперратора FOR.

(В начало)

CONTINUE

Синтаксис:
   continue;

   Оператор CONTINUE используется для прерывания выполнения блока операторов, которые составляют тело цикла и продолжения цикла в следующей итерации. В отличие от оператора BREAK, оператор CONTINUE не останавливает выполнение цикла, а наоборот запускает новую итерацию. Если в цикле WHILE идет просто запуск новой итерации, то в циклах FOR запускает с обновленным шагом.

(В начало)

SWITCH

Синтаксис:
   switch (expr){
      case 1 : 1_statement;
      [break;]
      case 2 : 2_statement;
      [break;]
      case n : n_statement;
      [break;]
      [default : statement;]
   }

   
   Здесь 1, 2...n - значение выражения expr, при которых выполнятся 1_statement, 2_statement ... n_statement - соответсвенно.
   Оператор SWITCH похож на группу операторов IF с одинаковым выражением. Во многих случаях вам нужно сравнить переменную (или выражение) со многими различными значениями и выполнить различные фрагменты кода в зависимости от того, чему будет равно значение выражения. Это как раз то, для чего предназначается оператор SWITCH.
   Важно понять, как работает оператор SWITCH, чтобы избежать ошибок. SWITCH выполняет последовательно оператор за оператором. В начале код не исполняется. Только когда встречается оператор CASE с подходящим значением, JS начинает выполнять программу. JS продолжает выполнять операторы до конца блока SWITCH или пока не встретит оператор BREAK. Если вы не напишете BREAK в конце цикла операторов, то JS продолжит выполнять операторы и следующего SWITCHа. Так что важно не забывать ставить BREAK (разве что в некоторых случаях Вы специально не захотите их ставить для достижения определенной цели).
   Специальный случай - это default . Этот оператор соответствует всем значениям, которые не удовлетворяют другим caseам.
   Другой заслуживающий упоминания факт - это то, что выражения в CASE могут быть любого скалярного типа, то есть целые числа или числа с плавающей запятой, а так же строки.
   Пример:

i=0;
   switch (i+=1) {
      case 1:
      document.write("i = 1");    - Выполнится только этот оператор.
      break;
      case 2:
       document.write("i = 2");
      break;
      case 3:
      document.write("i = 3");
       break;
      default:
      document.write("i != 1, i != 2, i !=3");
   }
(В начало)

FUNCTION

Синтаксис:
function NAME ([arg, . . .]) { блок операторов }

   
   NAME - имя функции, arg - ее аргуметы.
   Функция - это блок из одного или нескольких операторов.
   Блок выполняет определенные действия, а затем, возможно, возвращает значение. В языке JS процедуры - подпрограммы не возвращающие значений, не различаются. Все подпрограммы описываются функциями, а если в функцию или из нее не передаются параметры - то после имени функции ставятся круглые скобки без аргументов. Если функция имеет несколько аргументов, они отделяются запятой. Внутри одной функции, в приципе можно расположть дргую функцию.
   Вот небольшой пример:

   function prim(){
      var a=1;
      function plus(){
         b=1; b+=2;
         return b;
      }
   a+=plus();
   document.write(prim());
   }
   prim()

(Обратите внимание на то, что вложеную функцию plus() можно вызывать только внутри функции - prim(). При попытке вызова за ее пределами будет выдано сообщение о ошибке.)Но на практике это редко используется.
   Фигурные скобки определяют тело функции. Функция не может быть выполнена до тех пор, пока не будет явного обращения к ней.
    Если необходимо, чтобы функция возвращала определенное значение, следует использовать необязательный оператор RETURN, при этом указав в нем выражение, значение которого требуется возвратить.

(В начало)

RETURN

Синтаксис:
return (value);

    Оператор RETURN завершает выполнение функции и возвращает значение заданного выражения. Скобки в этом операторе можно не использовать. Оператор RETURN может отсутствовать в функции, если функция не возвращает значение.
   Оператор RETURN обычно используется для возврата одного значения, однако его можно применять для возврата массива:

function pivo() {
var mas = new Object();
mas[1] = "Чернигов";
mas[2] = "ское";
return (sarray);
}

Есть еще несколько операторов, которые работают в функциях - WITH и THIS. Но так, как они работают с объектами, мы рассмотрим эти операторы после изучения самих объектов.

(В начало)

VAR

В приводимых мною примерах везде и повсеместно используются переменные. Переменные создаются либо при помощи оператора VAR, либо при непосредственном присвоении значений с помощью оператора присваивания =.
   Синтаксис:
var Имя_переменной [= значение_переменной];

   
   Оператор VAR создает новую переменную. Область действия этой переменной будет либо локальной, либо глобальной в зависимости от того, где создана переменная. Переменная, созданная внутри функции будет недоступна за пределами функции, то есть переменная будет локальной. Фактически при создании переменной оператор VAR можно опустить, однако в этом случае в правой части оператора присваивания должно быть указанно значение.

(В начало)

Вот в принципе на этом мы и закончим раздел посвященный базовым операторам языка JS. Дальше мы рассмотрим объекты их свойства и методы.

Упс... Чуть не забыл. Есть еще один вид операторов, так называемые операторы коментариев и примечаний.
Синтаксис:
// Текст комментариев
/* Текст
комментариев
*/

   
   Соответственно первый комментарий может иметь только одну строку, второй несколько. Комментарии применяются исключительно для пояснений или для временного исключения некоторых фрагментов программы во время отладки.

(В начало)

Вот теперь пожалуй и все, что касается операторов.