Ошибки в программе
Существуют три типа ошибок в скриптах: синтаксические, логические и ошибки времени выполнения.
3.14.1. Синтаксические ошибки
Синтаксические — это ошибки в имени оператора или функции, отсутствие закрывающей или открывающей скобок и т. д. То есть ошибки в синтаксисе языка. Как правило, интерпретатор предупредит о наличии ошибки. А про- грамма не будет выполняться совсем.
Например, если вместо 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 inline#1 script in test.html doument.write(i + "<br>");
Итак, Web-браузер предупреждает нас, что в строке 5 файла test.html содер- жится ошибка. Достаточно отсчитать пятую строку в исходном коде и испра- вить опечатку с doument на document. А затем обновить страницу.
Перечислим часто встречающиеся синтаксические ошибки:
? опечатка в имени оператора или функции;
? буква набрана в русской раскладке клавиатуры вместо латинской;
? неправильный регистр букв;
? отсутствие открывающей или закрывающей скобки (или наоборот лиш-
ние скобки);
? в цикле for указаны параметры через запятую, а не через точку с запятой.
3.14.2. Логические ошибки
Логические ошибки — это ошибки в логике работы программы, которые можно выявить только по результатам работы скрипта. Как правило, интер- претатор не предупреждает о наличии ошибки, и программа будет выпол- няться, так как не содержит синтаксических ошибок. Такие ошибки доста- точно трудно выявить и исправить.
Предположим, необходимо вывести первые три элемента массива. Программист,
забыв, что индексация массивов начинается с нуля, пишет следующий код:
var Mass1 = [1, 2, 3, 4];
for (var i=1; i<4; i++) document.write(Mass1[i]+ "<br>");
В итоге возникает логическая ошибка, так как будут получены не первые элементы массива, а три элемента начиная со второго. Так как в данном при- мере нет синтаксических ошибок, интерпретатор сочтет код правильным.
Если в логическом выражении вместо оператора == (равно) указан оператор присваивания =, то это также приведет к логической ошибке:
var X = 5;
if (X=6) document.write("Переменная X равна 6");
else document.write("Переменная X НЕ равна 6");
Этот код выведет совсем не то, что хотел программист:
Переменная X равна 6
Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)
Похожие посты:
- Использование изображения вместо маркера списка (0)
- Использование цветного фона для меню, созданного с помощью элементов select (0)
- Кросс-броузерные решения (0)
- Интерпретация сообщений, выводимых инструментом W3C Validator (0)
- Конфигурация URL и слабая связанность (0)
- Углубленное изучение представлений и конфигурации URL (0)
- Аргументы представления, принимаемые по умолчанию Django (0)