В большинстве книг по JavaScript почти не рассматриваются сообщения об ошибках.
Видимо, авторы предполагают, что все делается правильно с самого первого раза и такие сообщения никогда не появляются. Добро пожаловать в реальный мир!
Если вы хотя бы раз пытались написать сценарий JavaScript или использовать на Web-странице готовый, то вам должно быть знакомо это чувство, которое возникает, когда вы считаете, что уже все в порядке и тут... бац! Выскакивает такое окошко:

В этом учебнике мы расскажем, что делать, когда возникают сообщения об ошибках. Когда вы начнете писать сценарии JavaScript, они будут появляться постоянно, так как являются неотъемлемой частью процесса создания.
Пожалуйста, запомните! В более поздних версиях MSIE и Navigator это окошко может не появляться.
При использовании MSIE сообщение об ошибке появится сначала как треугольный значок в нижнем левом углу. В этом треугольнике будет находиться восклицательный знак. Будет также присутствовать текст, сообщающий, что на странице встретились ошибки. Щелкните на этом треугольнике, чтобы получить сообщение об ошибке, которое рассматривается в данном учебнике. Или, если вы хотите, чтобы окно ошибки выводилось сразу, без щелчка на значке, перейдите в меню Tools (Сервис) и выберите Internet Options (Свойства обозревателя). В Internet Options щелкните на вкладке Advanced (Дополнительно) и поставьте флажок у строки "Display a notification about every script error" (Показывать уведомление о каждой ошибке сценария).
Затем, в зависимости от конфигурации системы, вы сможете получить окно ошибки. В окне ошибки существует также кнопка "Details" (Подробнее), при нажатии на которую выводится текстовое описание ошибки.
При использовании более поздней версии Netscape Navigator в строке состояния выводятся указания пользователю. При возникновении ошибки будет предложено ввести javascript: в строке адреса. Затем будет выведена ошибка и соответствующее текстовое описание.
В основном ошибки бывают двух типов: синтаксиса и времени выполнения. Ошибка синтаксиса означает опечатку или неправильную конфигурацию JavaScript. Ошибка времени выполнения означает, что была использована неправильная команда. В любом случае получается ошибка. Где-то что-то было перепутано.
Существуют программы, которые помогают исправлять ошибки и выполнять так называемый процесс отладки ("debugging"), но все можно сделать вручную. На самом деле это даже легче, чем можно подумать.
Говорят, что наилучший способ исправить ошибку — это ее не совершать, но сказать легче, чем сделать. Тем не менее можно свести количество ошибок к минимуму, пользуясь текстовым редактором без полей. Кроме того, отводите каждой команде JavaScript отдельную строку. Ни к чему разбивать длинные строки на несколько коротких. Это само по себе может привести к ошибке. И все же, можно поспорить, что каждый раз, принимаясь за создание сценариев, вы будете получать такие сообщения. Так что давайте разберемся, как их устранять.
В этих всплывающих окошках сообщений об ошибке есть одна замечательная вещь: они сами говорят, где и в чем состоит проблема. Взгляните на сообщение. У нас синтаксическая ошибка, означающая неправильную конфигурацию сценария, и находится она на строке 29. Более того, сообщение об ошибке прямо указывает на проблемную область. Было бы неплохо иметь такое и в HTML?
Когда сообщение об ошибке указывает на строку ошибки, то строку с ошибкой нужно отсчитывать от самого верха документа HTML, а не от первой строки JavaScript. Например, в приведенном ниже документе допущена ошибка в строке 9. Это ошибка синтаксиса, так как экземпляр (параметра) не заканчивается на той же строке, где начался. Видите, как скобка перескочила на следующую строчку?
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="javascript">
document.write("текст для страницы
"
)
</SCRIPT>
</BODY>
</HTML>
Но почему ошибка на строке 9, а не 8? Потому, что счет начинается с верхнего края документа HTML, не пропуская ни одной строки. Вот этот документ еще раз с пронумерованными строками.
(строка 1) <HTML>
(строка 2) <HEAD>
(строка 3) <TITLE></TITLE>
(строка 4) </HEAD>
(строка 5) <BODY>
(строка 6)
(строка 7) <SCRIPT LANGUAGE="javascript">
(строка 8) document.write("text for the page"
(строка 9) )
(строка 10) </SCRIPT>
(строка 11) </BODY>
(строка 12) </HTML>
Так что считайте все строки, даже пустые.
Как только строка с ошибкой найдена, необходимо решить, что делать. Чаще всего это будет синтаксическая ошибка — либо разорванная строка, либо опечатка, либо двойные кавычки вместо одинарных (несбалансированные кавычки) и тому подобное.
Если это ошибка времени выполнения, значит, команда, на которую указывает сообщение, не укладывается в логическую последовательность. Например, сценарий вызывает кнопку с помощью команды, которая на самом деле вызывает текстовое поле.
Ничто не раздражает больше, чем многократные сообщения об ошибках. Можно только сидеть и смотреть, как на экране плодятся окна. Можно решить, что многократные окна сообщений означают многократные ошибки. Не всегда.
JavaScript — это чрезвычайно логичный язык, требующий, чтобы все шло своим чередом, в линейной последовательности. Допустим, имеется 10 ошибок в длинном сценарии. Сообщения накладываются одно на другое, и последняя обнаруженная компьютером ошибка окажется сверху. Не пытайтесь сразу ее исправлять, возможно, в действительности ее даже не существует.
Может случиться так, что первая ошибка сценария вызывает все остальные. Так что исправлять ошибки следует последовательно с начала документа HTML. Сколько раз бывало так, что выскакивает 20 окон с ошибками, а разрешить все проблемы удается исправлением одной единственной первой ошибки!
Поэтому исправлять ошибки надо по одной от начала до конца. И каждый раз, исправив одну ошибку, запускайте сценарий. Можно получить 20 сообщений об ошибках, а исправлять придется одну или две.
Эта ошибка времени выполнения также достаточно распространена. Она означает, что в сценарии что-то не согласовано. Надо следить за тем, чтобы строка кода не появлялась в коде слишком рано, когда используемые в ней переменные еще не определены. Если дело не в этом, попробуйте стереть строку с ошибкой, ведь ее всегда можно вернуть на место. Случаются и банальные опечатки. Приглядитесь к тексту повнимательнее, опечатки случаются чаще, чем можно себе представить.
Вот практически все, что на данном этапе можно сказать про ошибки. Правда, этих знаний хватит, чтобы исправить 99% возникающих неприятностей. Просто помните, что сообщение — это на самом деле плюс. Без них пришлось бы сидеть, тупо уставясь в пустую страницу, не имея ни малейшего понятия, в чем проблема. Они весьма полезны, если взглянуть на них с правильной точки зрения.
Ниже показан сценарий с ошибкой. Загружая страницу с этим сценарием, браузер должен выдать два сообщения об ошибке. Исправьте их. Некоторые команды покажутся незнакомыми, но это неважно. Сообщения содержат достаточно информации, чтобы исправить сценарий.
Если сценарий выполнится правильно, то на странице появится текущая дата.
Подсказка: возможно, сначала будет получено только одно сообщение. Вторая ошибка появится, когда будет исправлена первая.
<SCRIPT type="text/javascript">
...x
dothis = new Date()
month = dothis.getMonth()
month = (month * 1) + 1
day = dothis.getDate()
year = dothis.getFullYear()
document.wrte(" ",month,"/",day,"/",year," ")
</SCRIPT>
Так действует скрипт — показывает дату. Чтобы заставить его работать, надо исправить две ошибки. Первой должна быть синтаксическая ошибка, утверждающая, что ...x не определено. Проще всего исправить эту ошибку будет удалением текста. Она является просто шуткой.
При повторном запуске сценария должна появиться другая синтаксическая ошибка, утверждающая, что document.wrte не является функцией. Причина ошибки — опечатка в слове write.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.