9. Операторы языка JavaScript.

     Язык JavaScript поддерживает небольшую систему операторов, необходимых для выполнения интерактивных видов работ в web страничках.
     Операторы JavaScript можно объединить в следующие группы:

- условные операторы :
     if...else

- операторы цикла:
     for
     while
     break
     continue

- операторы для работы с объектами:
     for...in
     new
     this
     with

- операторы комментария:
     //
     /*...*/

9.1. Условные операторы .

     Условные операторы выполняют заданные действия, основанные на соблюдении определен-ных условий. Действие выполняется при логическом значении true проверенного условия.
     В JavaScript имеется один условный оператор if.

Формат оператора:
     if (condition) {
       statements1 }
     [ else {
       statements2} ]

     Условием condition может быть любое JavaScript выражение, вычисляющее логические значения true или false, включая вложенные if операторы. Множественное задание операторов statements должно заключаться в фигурные скобки.
     Пример:

function checkData (){
if (document.form1.threeChar.value.length == 3) {
       return true}
  else {
       alert("Enter exactly three characters. " + document.form1.threeChar.value + " is not valid.")
       return false}
}

9.2. Операторы цикла.

     Цикл - группа команд, выполняющаяся многократно в зависимости от задания условия повторения. В JavaScript поддерживается два типа операторов цикла for и while, а также вспомагательные операторы break и continue, выполняющиеся внутри цикла. Другой оператор цикла for...in применяется для объектов.

Оператор for

     Цикл типа for выполняется до тех пор пока заданное условие не примет значение false. Этот оператор цикла аналогичен традиционному for циклу языка Си.
Формат оператора:

     for ([initial-expression;] [condition;] [increment-expression]) {
         statements
     }

     В начале цикла вычисляются операторы инициализации цикла initial-expression. Операторы тела цикла statements выполняются до тех пор, пока условие condition имеет значачение true. Выражение increment-expression выполняется при каждом повторе цикла.

     Последовательность выполнения цикла:
     1. Инициализация цикла - выполняется выражение initial-expression, если оно имеется. Выражение обычно содержит несколько счетчиков или переменных цикла.
     2. Вычисляется условное выражение condition. Если его значение равно false, цикл прекращается.
     3. Выполняется выражение increment-expression.
     4. Выполняются операторы цикла statements и управление передается на шаг 2.

     Пример:

<SCRIPT>
function howMany(selectObject) {
    var numberSelected=0
    for (i=0; i < selectObject.options.length; i++) {
      if (selectObject.options[i].selected == true)
        numberSelected++
    }
    return numberSelected
}
</SCRIPT>
<FORM NAME="selectForm">
<P><B>Choose some music types, then click the button below:</B>
<BR><SELECT NAME="musicTypes" MULTIPLE>
    <OPTION SELECTED> R&B
    <OPTION> Jazz
    <OPTION> Blues
    <OPTION> New Age
    <OPTION> Classical
    <OPTION> Opera
</SELECT>
<P><INPUT TYPE="button" VALUE="How many are selected?"
    onClick="alert ('Number of options selected: ' + howMany(document.selectForm.musicTypes))">
</FORM>

Оператор while.

     Оператор цикла while выполняет повторение до тех пор, пока значение заданного условия остается равным true.

Формат оператора:

     while (condition) {
       statements
     }

     Проверка условия condition выполняется после завершения работы операторов цикла statements перед переходом на повторение цикла. Проверка цикла не непрерывна, и выполняется один раз при первом вхождении в цикл и повторно при окончании выполнения операторов цикла.
     Пример 1:

n = 0
x = 0
while( n < 3 ) {
    n ++
    x += n
}

     После окончания цикла значения переменных: n = 3, x = 6.

Пример 2. Бесконечный цикл.

while (true) {
    alert("Hello, world") }

Оператор break.

     Оператор break прекращает выполнение циклов while или for и передает управление оператору программы, следующему за циклом.
     Пример 1. Цикл заканчивается при значении i равном 3 и возвращается значение функции 3*x.

function testBreak(x) {
    var i = 0
    while (i < 6) {
    if (i == 3)
       break
       i++
    }
    return i*x
}

Оператор continue.

     Оператор continue прекращает выполнение блока операторов цикла while или for и продолжение цикла начинается с новой итерации:

     - в while цикле происходит передача управления на проверку условия condition,
     - в for цикле - передается управление на вычисление выражения increment-expression.

     Пример. Переменная n принимает значения 1, 3, 7 и 12.

i = 0
n = 0
while (i < 5) {
    i++
    if (i == 3)
       continue
    n += i
}

9.3. Операторы для работы с объектами.

     В JavaScript имеется несколько способов манипулирования объектами:
     - оператор цикла for...in,
     - оператор new,
     - with оператор,
     - ключевое слово this.

Оператор for...in.

     Оператор for...in выполняет итерацию по всем свойствам объекта. Для каждого имеющегося свойства объекта выполняются заданные операторы цикла.
Формат оператора
for (variable in object) {
     statements }

     Пример. Приведенная функция получает в качестве аргументов объект и его имя В функции перебираются все свойства объекта и в результате формируется текстовая строка с перечислением свойств объекта , их значений и управляющих HTML тегов.

function dump_props(obj, obj_name) {
    var result = ""
    for (var i in obj) {
       result += obj_name + "." + i + " = " + obj[i] + "<BR>"
    }
    result += "<HR>"
    return result
}

     Для приводимого ранее объекта типа car с свойствами make и model, результатом работы функции будет строка (с признаком перевода на новую строку):
Вызов функции:

MyCar = new car("Ford","Mustang") // Create new object
dump_props(myCar,"myCar") // Dump

Результат:
myCar.make=Ford
myCar.model=Mustang

Оператор new.

     Оператор new позволяет создавать определенные пользователем объекты.
Формат оператора:
     objectName = new objectType ( param1 [,param2] ...[,paramN] )

Ключевое слово this.

     Ключевое слово this используется при обращении к текущему объекту. В общем случае, с помощью this происходит обращение к вызываемому объекту в методах.
Формат:
     this[.propertyName]

     Пример. Функция validate определяет допустимость свойств объекта, заданных нижними и верхними пределами их значений.

function validate(obj, lowval, hival) {
    if ((obj.value < lowval) || (obj.value > hival))
       alert("Invalid Value!")
}

     Можно вызвать функцию из обработчика событий onChange, используя this для передачи объекта как параметра:

<B>Enter a number between 18 and 99:</B>
<INPUT TYPE = "text" NAME = "age" SIZE = 3
    onChange="validate(this, 18, 99)">

Оператор with.

     Оператор with используется для установки значения умолчания типа объекта для блока операторов. Внутри этого блока можно не указывать имени объекта при обращении к его свойствам.
Формат оператора:

with (object){
    statements
}

     Пример:

var a, x, y
var r=10
with (Math) {
    a = PI * r * r
    x = r * cos(PI)
    y = r * sin(PI/2)
}

Комментарии.

     Комментарии являются пояснениями автора в его скрипт-программе. Комментарии игнориру-ются интерпретаторами . JavaScript поддерживает задание комментариев в стиле языков Java и Си:

     - комментарии в одной строке, заданные двумя слэшами (//),
     - комментарии группы строк задаются как: /* ....... */

    Пример:

// This is a single-line comment.
/* This is a multiple-line comment. It can be of any length, and
you can put whatever you want here. */


BACK.gifВернуться к оглавлению