Необязательный оператор break, задавемый в блоках case, выполняет безусловный выход их оператора switch.
2. Операторы цикла
Оператор цикла повторно выполняет последовательность операторов JavaScript, определенных в его теле, пока не выполниться некоторое заданное условие.
• цикл for (цикл со счетчиком)
for (i=1; i<10; i++){ <тело цикла>
}
Первый параметр (i=1) определяет счетчик и указывает его начальное значение. Этот параметр называется начальным выражением, поскольку в нем задается начальное значение счетчика (начальное значение в данном случае равно единице). Это выражение инициализации выполняется самым первым и всего один раз.
Второй параметр (i<10) - это условие, которое должно быть истинным, чтобы цикл выполнялся, как только условие цикла становится ложным, работа цикла завершается. Он называется условием цикла. Проверка условия цикла осуществляется на каждом шаге; если условие истинно, то выполняется тело цикла (операторы в теле цикла). Цикл в данном случае выполнится только девять раз, так как задано условие i<10.
Третий параметр (i++) - это оператор, который выполняется при каждом последовательном прохождении цикла. Он называется выражением инкремента, поскольку в нем задается приращение счетчика (приращение счетчика в данном случае равно единице). Пример автоматической прорисовки нескольких линий с помощью цикла for.
<script language="JavaScript" type="text/JavaScript"> for (var i=1; i<10; i++){
document. write("<hr align='center' width='100'>");
}
</script>
• цикл while (цикл с предусловием) while (условие)
{
<тело цикла>
}
30
Пока значение условия - true (истинно), выполняется тело цикла. Тело цикла может быть представлено простым или составным оператором.
Оператор while содержит в скобках все необходимые параметры условия цикла (логическое выражение). После определения всех параметров цикла вводится открывающая фигурная скобка, символизирующая начало тела цикла. Закрывающая фигурная скобка вводится в конце тела цикла. Все операторы, введенные в скобках, выполняются при каждом прохождении цикла.
<script language="JavaScript"> var i=1;
while(i<=10){ document.write('число='+i+'<br>'); i=i+2;
}
</script>
• прерывание и перезапуск цикла
Оператор прерывания break позволяет прервать выполнение цикла и перейти к слудующему за ним выражению:
a = 10; i = 1;
while (a<100){ a = a * i;
if (i>4) break; ++i;
}
Если значение i превысит 4, то прерывается выполнение цикла. Оператор перезапуска continue позволяет перезапустить цикл, т.е.
оставить невыполненными все последующие выражения, входящие в тело цикла, и запустить выполнение цикла с самого начала.
a = 10; i = 1;
while (a<100){ ++i;
if (i>2 && i<11) continue; a = a * i;
}
Создание и вызов функций в JavaScript
В JavaScript функцией называется именованная часть программного кода, которая выполняется только при обращении к ней посредством указания
31
ее имени. Функции создаются с помощью ключевого слова function. Обычно функции располагают в секции <head>. Такое расположение функций в HTML-документе гарантирует их полную загрузку до того момента, когда их можно будет вызвать из секции <body>.
После названия функции (func_name) ставятся двойные круглые скобки, программный код при этом заключается в фигурные скобки:
<script language="JavaScript"> function func_name ()
{
программный код функции (тело функции)
}
</script>
Для того, чтобы вызвать функцию в нужном месте, необходимо просто указать ее имя в тексте:
<script language="JavaScript"> func_name ();
</script>
Второй вариант вызова функции непосредственно в HTML теге:
<a href="javascript:func_name()">Текст ссылки</a>
Ниже приведен код страницы HTML, после загрузки которой каждые три секунды будет появляться сообщение, генерируемое вызовом функции myMessage():
<script>
function myMessage()
{
alert("My Message")
}
</script>
<body onload='setTimeout ("myMessage()",3000)'>
<p>Каждые три секунды будет появляться сообщение</p> </body>
Метод setTimeout() запускает выполнение кода JavaScript, задаваемого первым строковым параметром, через определенный промежуток времени после выполнения метода.
Интервал задается в миллисекундах (1000 соответствует 1 секунде).
32
1.3.5. Стандартные объекты и функции ядра JavaScript
Объект Array
Массив - упорядоченный набор однородных данных, к элементам которого можно обращаться по имени и индексу. Язык JavaScript не имеет встроенного типа данных для создания массивов, поэтому для решения используется объект Array и его методы.
Для создания объекта Array вызывается оператор new и конструктор массива - системная функция (ее имя совпадает с именем объекта), инициализирующая элементы массива:
m=new Array();
Заполнение массива происходит позже. Например:
<script language="JavaScript"> //создание нового массива m=new Array(); //заполнение массива m[0]=1;
m[1]=2;
m[2]=4;
m[3]=56;
</script>
В приведенном выше примере с помощью команды new создается массив m, а затем происходит его заполнение - каждому элементу присваивается определенное значение.
m=new Array(1,2,4,56);
Вызывается команда new и сразу задаются значения всех элементов массива.
<script language="JavaScript">
//создание нового массива и его заполнение m=new Array(1,2,4,56)
</script>
Объявление строковых массивов проводится тем же способом, что и объявление числовых массивов.
33
|
Таблица 1.8 |
|
Методы объекта Array |
Действие |
|
|
|
|
join() |
Объединяет все элементы массива в одну строку |
|
|
с указанием разделителя |
|
|
|
|
reverse() |
Изменяет порядок элементов в массиве - первый |
|
|
элемент становится последним, последний - |
|
|
первым |
|
sort() |
Выполняет сортировку элементов массива |
|
|
|
|
split() |
Разделяет строку на составные части |
|
|
|
|
concat() |
Объединяет два массива в один |
|
|
|
|
slice() |
Выделяет часть массивы |
|
|
|
|
toString() |
Возвращает строку - результат конкатенации всех |
|
|
элементов массива. Элементы массива в строке |
|
|
разделены запятой. |
|
|
|
|
Свойство length |
Возвращает длину массива (число элементов в |
|
|
нем). |
|
|
|
|
Пусть определены два массива:
array1 = new Array("Первый","Второй","Третий"); array2 = new Array("Один","Два","Три");
Тогда метод join() первого массива array1.join() возвратит строку:
"Первый,Второй,Третий"
Метод sort() первого массива array1.sort() упорядочит элементы массива array1 (переставив их местами непосредственно в самом массиве array1) в алфавитном порядке:
array1[0] = "Второй"; array1[1] = "Первый"; array1[2] = "Третий";
Поскольку некоторые методы массива возвращают массив, то к нему можно сразу же применить какой-либо метод, продолжив "точечную"
34