Ошибки в программе

Опубликовал: Среда, Май 2, 2012 в категории HTML | Пока нет комментариев

Существуют три типа ошибок в скриптах: синтаксические, логические и ошибки времени выполнения.

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) — (Профессиональное программирование)

Add to Social Bookmarks
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • BobrDobr
  • Mr. Wong
  • Yandex.Bookmarks
  • Text 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Google Bookmarks
  • Pisali
  • SMI 2
  • Moe Mesto
  • 100 Zakladok
  • Vaau!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - I.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>