- •1. Основные понятия
- •3.4.2. Окно с сообщением и кнопками ok и Cancel
- •3.4.3. Окно с полем ввода и кнопками ok и Cancel
- •3.6. Типы данных и инициализация переменных. Определение типа данных переменной
- •3.7. Операторы JavaScript
- •3.7.1. Математические операторы
- •3.7.2. Операторы присваивания
- •3.7.3. Двоичные операторы
- •3.7.4. Оператор обработки строк
- •3.8. Преобразование типов данных
- •3.9. Специальные символы. Разбиение сообщения в диалоговом окне на несколько строк
- •3.10. Массивы
- •3.11. Функции. Разделение программы на фрагменты
- •3.11.1. Основные понятия
- •3.11.2. Расположение функций внутри html-документа
- •3.11.3. Рекурсия. Вычисление факториала
- •3.11.4. Глобальные и локальные переменные
- •3.12. Условные операторы. Выполнение блоков кода только при соответствии условию
- •3.12.1. Операторы сравнения
- •3.12.2. Оператор ветвления if...Else. Проверка ввода пользователя
- •3.12.3. Оператор ? Проверка числа на четность
- •3.12.4. Оператор выбора switch
- •3.13. Операторы циклов. Многократное выполнение блока кода
- •3.13.1. Цикл for
- •3.13.2. Цикл while
- •3.13.3. Цикл do...While
- •3.13.4. Оператор continue.
- •3.13.5. Оператор break. Прерывание цикла
- •3.14. Ошибки в программе
- •3.14.1. Синтаксические ошибки
- •3.14.2. Логические ошибки
- •3.14.3. Ошибки времени выполнения
- •3.15. Встроенные классы JavaScript
- •3.15.1. Основные понятия
- •3.15.2. Класс Global
- •3.15.3. Класс Number. Работа с числами
- •3.15.4. Класс String. Обработка строк
- •3.15.5. Класс Array. Работа с массивами и их сортировка
- •Многомерные массивы
- •Ассоциативные массивы. Перебор ассоциативных массивов
- •3.15.6. Класс Math. Использование математических функций
- •3.15.7. Класс Date. Получение текущей даты и времени. Вывод даты и времени в окне Web-браузера
3.13.3. Цикл do...While
Выполнение выражений в цикле do_while продолжается до тех пор, пока логическое выражение истинно. Но в отличие от цикла while условие проверяется не в начале цикла, а в конце. По этой причине выражения внутри цикла do...whiie один раз обязательно выполнятся. Конструкция имеет следующий формат:
<Начальное значение>;
do {
<Выражения>;
<Приращение>;
} while (<Условие>);
Последовательность работы цикла do...while:
-
Переменной-счетчику присваивается начальное значение.
-
Выполняются выражения внутри цикла.
-
Переменная-счетчик изменяется на величину, указанную в <Приращении>.
-
Проверяется условие, и если оно истинно, осуществляется переход к пункту 2, а если нет — цикл завершается.
Выведем все числа от 1 до 100, используя цикл do...while (листинг 3.22).
Листинг 3.22. Цикл do…while
var i=1;
do {
document.write(i + "<BR>");
i++;
} while (i<101);
Внимание!
Если <приращение> не указано, то цикл будет бесконечным.
В <приращении> не обязательно должна быть арифметическая операция. Например, при работе с базами данных в качестве <приращения> будет перемещение к следующей строке, а условием выхода из цикла — отсутствие следующей строки в базе данных. В этом случае <начальным значением> будет получение первой строки базы данных.
3.13.4. Оператор continue.
Переход на следующую итерацию цикла
Оператор continue позволяет перейти на следующую итерацию цикла еще до завершения выполнения всех выражений внутри цикла. Этот оператор можно применять в любых циклах.
Выведем все числа от 1 до 100, кроме чисел от 5 до 10 включительно (листинг 3.23).
Листинг 3.23. Использование оператора continue
for (i=1; i<101; i++) {
if (i>4 && i<11) continue;
document.write(i + "<BR>");
}
3.13.5. Оператор break. Прерывание цикла
Оператор break позволяет прервать выполнение цикла досрочно. Выведем все числа от 1 до 100 еще одним способом (листинг 3.24).
Листинг 3.24. Прерывание цикла
for (i=1; true; i++) {
if (i>100) break;
document.write(i + "<BR>");
}
Здесь мы указываем условие продолжения цикла, которое, всегда истинно, так что цикл продолжался бы бесконечно, если бы мы не вышли из него, используя оператор break.
Оператор break прерывает выполнение цикла, а не программы, то есть далее будет выполнено выражение, следующее сразу за циклом.
3.14. Ошибки в программе
Существуют три типа ошибок в скриптах: синтаксические, логические и ошибки времени выполнения.
3.14.1. Синтаксические ошибки
Синтаксические — это ошибки в имени оператора или функции, oтсутствие закрывающей или открывающей скобок и т. д. То есть ошибки в синтаксисе языка. Как правило, интерпретатор предупредит о наличии ошибки. А программа не будет выполняться совсем.
Например, если вместо
document.write(i + "<BR>");
написать
doument.write(i + "<BR>");
то Web-браузер отобразит нечто подобное:
Error:
name: ReferenceError^
message: Statement on line 5: Reference to undefined variable: doument
Backtrace:
Line 5 of inlinetl script in test.html
doument.Write(i + "<BR>");
Итак, Web-браузер предупреждает нас, что в строке 5 файла test.html содержится ошибка. Достаточно отсчитать пятую строку в исходном коде и исправить опечатку с doument на document. А затем обновить страницу.
Перечислим часто встречающиеся синтаксические ошибки:
-
опечатка в имени оператора или функции;
-
буква набрана в русской раскладке клавиатуры вместо латинской;
-
неправильный регистр букв;
-
отсутствие открывающей или закрывающей скобки (или наоборот лишние скобки);
-
в логическом выражении вместо оператора === (равно) указан оператор присваивания =;
-
в цикле for указаны параметры через запятую, а не через точку с запятой.