Почему не работает тот или иной скрипт…

«Почему не работает тот или иной скрипт…» — такой вопрос довольно часто задают мне читатели рассылки и посетители сайта по электронной почте или в комментариях к некоторым Скриптам, опубликованных на сайте.
Сразу оговорюсь, что речь в данной статье пойдет только о Скриптах, которые я публикую на страницах своего сайта http://www.LuksWeb.ru/, хотя большинство советов, о которых пойдет речь ниже, справедливы и для других Скриптов, которые Вы найдете на просторах Интернета.
Чтобы нам разговаривать на «одном языке», давайте уточним некоторые понятия. Что мы вообще понимаем под понятием: СКРИПТ?
Что такое Скрипт?
Скрипт – это небольшая программка, расширяющая функциональность сайта. Скрипт внедряется в код основной web-страницы, написанной на HTML, PHP или других языках программирования. Скрипты чаще всего пишут на языках JavaScript и PHP, а также других языках. Скрипт (программа) может содержать всего несколько строк кода, но бывают и довольно объемные Скрипты, содержащие несколько страниц кода. Это может быть например вывод даты или времени на сайте, а может быть полноценная игра.
Скрипты могут внедряться (подключаться) как в код основной web-страницы, так и выносится в отдельные файлы и подключаться к web-странице с помощью специальных операторов. Если скрипт выносится в отдельный файл, то такой файл обычно имеет расширение .js , .php. Но файлы с расширением .php могут иметь и просто файлы сайта (блога).
На моем сайте Вы можете найти два раздела посвященные различным Скриптам: раздел с одноименным названием: Скрипты и раздел jQuery. Если Вам не понятно в чем разница пройдите по данным ссылкам, и Вы все поймете сами.
Зачем же изобретать велосипед.
Следующий момент, который мне хотелось бы отметить — это написание Скриптов. В настоящее время Интернет просто кишит скриптами практически всех стилей и направлений, написанных на любых языках. Поэтому не вижу смысла «изобретать велосипед» и писать Скрипты самому. Т.е. я хочу сказать, что сам пишу Скрипты полностью очень редко, чаще нахожу в Интернете Скрипт с нужным функционалом и иногда немного дорабатываю под свои задачи. Возможно, кто-то посчитает это неправильным, но поверьте все уже давно написано, нужно только найти и адаптировать нужный Скрипт под определенный проект (сайт), повторюсь: так зачем же изобретать велосипед.
Прежде чем опубликовать какой-то Скрипт на своем сайте, я его всесторонне тестирую и испытываю в различных браузерах, смотрю, как он работает в той или иной ситуации. И если обнаруживаю, что в каком–то браузере возникают проблемы, то так об этом и «говорю», публикуя каждый конкретный Скрипт.
Публикуя, какой либо скрипт у себя на сайте, стараюсь максимально подробно «разжевывать» процесс подключения каждого скрипта к web-странице, ведь далеко не все мои посетители в совершенстве знают языки программирования. Собственно говоря для того и публикую, чтобы рассказать новичкам как работают и подключаются Скрипты.
Почему не работает тот или иной скрипт?
А теперь давайте поговорим о том «Почему не работает тот или иной скрипт…».
Действительно не всегда, не у всех и не сразу Скрипты начинают работать, так как хотелось бы. Здесь можно выделить несколько основных причин.
1. Скрипт не работает в браузере …
В силу того, что между компаниями производителями программного обеспечения (в данном случае браузеров) постоянно идет конкурентная борьба, а так же не соблюдений этими компаниями требований консорциума WWW и спецификации HTML, увы, действительно один и тот же код скрипта может разными браузерами отображаться по-разному. А в некоторых случаях в одном браузере скрипт может работать прекрасно, а в другом браузере не работать вообще. Но как я уже сказал выше все эти момент я отображаю в описании скрипта, и если Вы не нашли в статье подобных ограничений или упоминаний, то это значит что скрипт работает во всех распространенных браузерах: IE, Opera, Google Chrome, Mozila Firefox.
Поэтому убедительная просьба: ВНИМАТЕЛЬНО ЧИТАЙТЕ ОПИСАНИЕ. Если Вы не нашли в описании подобных оговорок – это значит что просто Вы где то допустили ошибку. Вывод: ошибку нужно найти и устранить.
2. Скрипт не работает на Ucoz (или других конструкторах сайтов).
Сервисы подобные Ucoz, narod.ru и другие аналогичные конструкторы сайтов используют в своей работе свои собственные разработки. Как правило, подобные сервисы (конструкторы) позволяют создавать (компоновать) сайты из готовых блоков (модулей). При этом часто используют свои собственные языки программирования и разработки, которые подчас просто конфликтуют с общепринятыми языками программирования. В Интернете даже существует отдельное направление: Скрипты для Ucoz.
Кроме того подобные сервисы в большинстве случае умышленно ограничивают функционал размещенных у них сайтов. Ведь все Скрипты создают дополнительную нагрузку на сервер и отнимают ресурсы сервера. Администраторам подобных сервисов проще закрыть большинство функций и возможностей для пользователей, чем разбираться с проблемами и проводить модернизацию своего оборудования, ведь в первую очередь это ДЕНЬГИ! Они живут по принципу: не нравится наш БЕСПЛАТНЫЙ сервис – не пользуйтесь.
Если Вы столкнулись с подобной проблемой, попробуйте обратиться в службу поддержки сервиса и попросить помощи. Возможно, Вам и пойдут навстречу, но мой опыт показывает, что шансов очень мало.
3. РHP скрипт не работает на сервисе: narod.ru
Увы, но конструктор сайтов «НАРОД» (narod.ru) вообще не поддерживает PHP и Скрипты написанные на PHP здесь работать не будут. Так что не стоить даже пробовать и трать свое время и нервы.
4. Локально (под Денвером) скрипт работал без проблем, а после переноса на реальный Хостинг в Интернете Скрипт не работает, что делать?
Закачка на сервер Скриптов, как правило, осуществляется по протоколу FTP. При этом для некоторых Скриптов очень важен режим закачки файлов Скрипта (бинарный или текстовый). Если это критично, то в описании к Скрипту тоже будет указано в каком режиме необходимо закачивать скрипт, обязательно обращаете на это внимание.
Кроме того обратите внимание на права доступа файлов и папок Скрипта. Для некоторых Скриптов это тоже очень важный момент. При установке «неправильных» прав доступа Скрипт может не работать вовсе или в не полном объеме. Если подобное ограничение имеется, я обязательно указываю это в описании. Будьте внимательны читая описание!
Что делать если Скрипт не работает?
В первую очередь внимательно прочитайте описание по Скрипту, который Вы хотите развернуть на сервере в Интернете. Проверьте правильность написание кода. Обычно 80-90% проблем возникает именно из-за нашей невнимательности : закачали не в том режиме или неправильно выставили права доступа (это очень актуально для Unix ОС), потеряли какой-то знак в коде и т.д.
Обратите внимание на характеристики Хостинга. Особенно если ваш сайт размещается на бесплатном Хостинге или создан с помощью какого либо конструктора сайтов.
Если так и не удалось самостоятельно решить проблему и запустить скрипт, обращайтесь в службу техподдержки вашего Хостинга. Даже на бесплатных Хостингах такая служба существует и часто адекватно и оперативно реагирует на обращения своих клиентов.
А вообще проблемы с Хостингом можно решить очень просто – перейти на платный профессиональный Хостинг, тем более что сегодня приличный Хостинг стоит совсем не дорого. Вот один из таких Хостингов-провайдеров IPhoster . Самый ходовой тариф HOST1 стоит всего 1 дол. США в месяц! В разделе Веб-хостинг можно выбрать тариф на любой вкус.
Компания IPhoster предоставляет свои услуги по принципу «все включено» в независимости от тарифного плана, т.е. за свои деньги Вы получите полный набор профессиональных инструментов и вопрос о неработоспособности Скриптов из-за технических характеристик Хостинга отпадет сам собой.
Как устранить ошибки сценариев в Internet Explorer
Приложение Internet Explorer 11 для ПК будет выведено из использования и снято с поддержки 15 июня 2022 г. (список других вопросов, см. в разделе Вопросы и ответы). Те же приложения и сайты IE11, которые вы используете сегодня, могут открываться в Microsoft Edge режиме Internet Explorer. Подробнее см. здесь.
Эта статья решает проблему, из-за которой веб-страница не может отображаться при возникновении ошибки сценария в Internet Explorer.
Оригинальная версия продукта: Internet Explorer 11, Internet Explorer 10, Internet Explorer 9
Оригинальный номер базы знаний: 308260
Сводка
При возникновении ошибок сценариев веб-страницы могут не отображаться или работать неправильно в Internet Explorer.
При возникновении ошибок сценариев в Internet Explorer могут появиться следующие сообщения об ошибках:
Данная страница содержит ошибки, и, возможно, она отображается и действует неправильно. Это сообщение можно вызвать, дважды щелкнув значок предупреждения, отображаемый в строке состояния.
При выборе параметра Показать сведения могут отображаться подробные сведения о следующих ошибках:
В строке состояния Internet Explorer также может отобразиться следующее сообщение с предупреждением:
Выполнено, но с ошибками на странице.
Данная ошибка возникает из-за того, что исходный HTML-код веб-страницы неправильно работает со сценариями на стороне клиента (например, с Microsoft JScript или Visual Basic). Эти проблемы могут возникать по указанным ниже причинам.
- Исходный HTML-код веб-страницы содержит ошибки.
- На веб-странице используются новые технологии, которые не поддерживаются Internet Explorer.
- На веб-странице используется сценарий Visual Basic, исполняемый на клиенте, который является устаревшим.
- На компьютере или в сети заблокировано использование активных сценариев, компонентов ActiveX или приложений Java. Блокирование активных сценариев, компонентов ActiveX и приложений Java может выполняться браузером Internet Explorer и другими программами (например, антивирусной программой или брандмауэром).
- В настройках антивирусной программы задана проверка папок Временные файлы Интернета или Загруженные файлы программ.
- На компьютере повреждены папки, используемые при работе в Интернете.
- Поврежден или устарел драйвер видеоадаптера.
Серверные сценарии (например, Visual Basic на страницах Active Server Pages (ASP)) выполняются на веб-сервере. Ошибки сценариев, возникающие из-за сбоя на сервере, не вызывают появление сообщения об ошибке в браузере Internet Explorer, но могут привести к тому, что веб-страница не будет работать или будет отображаться с ошибками. Сведения об устранении неполадок, приведенные в данной статье, относятся только к клиентским сценариям. Если вы считаете, что проблема влияет на работу серверного сценария, обратитесь к администратору соответствующего веб-сервера.
Перечисленные в данной статье методы могут помочь устранить ошибки сценариев, которые вызваны файлами на компьютере или его параметрами. Краткие визуальные инструкции по устранению ошибок сценариев в Internet Explorer см. в этом видеоролике:
Решение
Корпорация Майкрософт рекомендует обновить систему до последнего доступного обновления Windows. Дополнительные сведения о Центре обновления Windows см. в разделе Вопросы и ответы.
Шаг 1. Убедитесь, что ошибки сценариев возникают на нескольких веб-страницах
Если единственным признаком проблемы является сообщение об ошибке, но веб-сайты при этом работают, можно попробовать проигнорировать ошибку. Кроме того, если ошибка появляется лишь на нескольких веб-страницах, проблема может заключаться в них. Если вы решите игнорировать ошибки, вы можете отключить отладку сценариев. Для этого установите флажок Отключить отладку сценариев (Internet Explorer) в параметрах Свойства браузера > Дополнительно > Обзор.
Если данная проблема возникает более чем на одном-двух сайтах, не отключайте отладку сценариев.
Шаг 2. Убедитесь, что проблема вызвана файлами или параметрами на вашем компьютере
Чтобы найти источник проблемы, проверьте веб-страницу, используя другую учетную запись пользователя, другой браузер или другой компьютер.
Если при просмотре веб-страницы с использованием другой учетной записи, браузера или компьютера ошибка сценария не возникает, то причиной могут быть определенные файлы на компьютере или его параметры. В таком случае для устранения проблемы воспользуйтесь способами, описанными в данной статье:
Произведя все необходимые изменения, описанные в способе, попробуйте открыть веб-страницу, на которой появлялось сообщение об ошибке сценария. Если сообщение не появляется, то проблема устранена.
Метод 1. Убедитесь, что Internet Explorer не блокирует активные сценарии, ActiveX и Java
Активные сценарии, ActiveX и Java используются при отображении информации на веб-страницах. Если эти технологии заблокированы на компьютере, веб-страница может отображаться неправильно. Вы можете сбросить параметры безопасности Internet Explorer, чтобы убедиться, что эти технологии не заблокированы. Для этого выполните следующие действия:
Запустите Internet Explorer.
В меню Сервис выберите Свойства браузера. Если меню Сервис не видно, нажмите клавишу ALT.
В диалоговом окне Свойства браузера откройте вкладку Безопасность.
Последовательно выберите По умолчанию > OK.
При выборе уровня безопасности «Высокий» в браузере Internet Explorer отключается использование элементов ActiveX и программ Java.

Метод 2. Удаление всех временных файлов Интернета
Каждый раз при открытии браузера для просмотра веб-страницы, компьютер сохраняет копию страницы во временном файле. Если размер папки с временными файлами Интернета становится слишком велик, могут возникнуть проблемы с отображением некоторых веб-страниц. Периодическая очистка папки может устранить эту проблему.
Для удаления всех временных файлов, связанных с Интернетом, в браузере Internet Explorer.
Запустите Internet Explorer.
В меню Сервис выберите Свойства браузера. Если меню Сервис не видно, нажмите клавишу ALT.
Откройте вкладку Общие.
В разделе Журнал браузера нажмите кнопку Удалить.

В диалоговом окне Удаление журнала браузера установите следующие флажки и нажмите кнопку Удалить:
- Временные файлы Интернета
- Файлы cookie
- Журнал

Последовательно нажмите кнопки Закрыть и OK, чтобы закрыть диалоговое окно Свойства браузера.
Метод 3. Установка последних обновлений программного обеспечения для Windows
Чтобы проверить наличие обновлений, нажмите кнопку Пуск > Параметры > Обновление и безопасность > Центр обновления Windows, затем — Проверить наличие обновлений.
Расширенная отладка
Этот подраздел предназначен для опытных пользователей. Предлагает три метода решения данной проблемы.
Метод 1. Убедитесь, что антивирусная программа или брандмауэр не блокируют активные сценарии, ActiveX и Java
Сценарии, ActiveX и Java влияют на отображение веб-страницы. Если эти технологии заблокированы, веб-страницы могут отображаться неправильно.
Обратитесь к документации по используемому брандмауэру или антивирусной программе, чтобы убедиться, что сценарии, элементы ActiveX и программы Java не блокируются. Затем внесите все необходимые изменения.
Метод 2. Убедитесь, что в настройках антивирусной программы не задана проверка папок «Временные файлы Интернета» или «Загруженные файлы программ»
Если антивирусная программа принимает сценарий за вирус, это может привести к ошибке при выполнении сценария Чтобы такая проблема не возникала, убедитесь, что в настройках антивирусной программы не задана проверка папок «Временные файлы Интернета» или «Загруженные файлы программ».
Чтобы отключить проверку программой этих папок, ознакомьтесь с документацией к используемой антивирусной программе. Затем внесите все необходимые изменения. Чтобы добавить исключения в центр обеспечения безопасности Windows в Windows 10, выберите параметр Добавить исключение в центр обеспечения безопасности Windows.
Метод 3. Отключение плавной прокрутки
Если проблема связана с отображением видео, то ошибку может вызывать плавная прокрутка, которая сбивает время выполнения сценария. Это может привести к возникновению ошибки сценария. Для отключения плавной прокрутки в Internet Explorer, выполните следующие действия.
- Запустите Internet Explorer.
- В меню Сервис выберите Свойства браузера. Если меню Сервис не видно, нажмите клавишу ALT.
- На вкладке Дополнительно снимите флажок Использовать плавную прокрутку.
- Нажмите кнопку OK и закройте Internet Explorer.
Если это решит проблему, проверьте наличие обновленных драйверов для видеоадаптера. Для получения обновленного драйвера обратитесь к производителю видеоадаптера или компьютера.
Дополнительная информация
Процедура отключения уведомления о каждой ошибке сценария в Internet Explorer
Запустите Internet Explorer.
В меню Сервис выберите Свойства браузера. Если меню Сервис не видно, нажмите клавишу ALT.
Перейдите на вкладку Дополнительно, снимите флажок Показывать уведомление о каждой ошибке сценария и нажмите кнопку OK.

Устранение ошибок сценариев при печати из Internet Explorer
При попытке печати веб-страницы в Internet Explorer может отобразиться ошибка сценария как на следующем примере:
Как правило, устаревшие и поврежденные драйверы принтера также могут вызывать ошибки сценариев при печати в Internet Explorer Для решения этих проблем установите последние драйверы принтера.
Для решения проблемы выполните шаги, описанные в статье Устранение проблем с принтером в Windows 7 и Windows 8.1, чтобы проверить свой принтер и обновить его драйверы.
В ряде случаев обновленная версия драйвера может отсутствовать в Центре обновления Windows. В таком случае перейдите на веб-сайт изготовителя принтера, чтобы найти, загрузить и установить последнюю версию драйвера своего принтера.
Если вы не можете распечатать или просмотреть веб-страницу в Internet Explorer, см. следующую статью:
Ошибки в JavaScript: исправляем, обрабатываем, чиним
Всем привет! Вдохновленные успехом предыдущей статьи, которая была написана в преддверии запуска курса «Fullstack разработчик JavaScript«, мы решили продолжить серию статей для новичков и всех тех, кто только начинает заниматься программированием на языке JavaScript. Cегодня мы поговорим об ошибках, которые случаются в JS, а также о том, как именно с ними бороться.

Отдебажь за человека одну ошибку, и он будет благодарен тебе один пулл реквест. Научи его дебажить самостоятельно, и он будет благодарен тебе весь проект.
Типичные ошибки начинающих
Итак, начнем с самых примитивных ошибок. Допустим, вы только недавно закончили изучать основы HTML и CSS и теперь активно принялись за программирование на JavaScript. Для примера: вы хотите, чтобы при клике на кнопку у вас открывалось, к примеру, скрытое до этого момента модальное окно. Так же вы хотите, чтобы у вас по нажатию на крестик это окно закрывалось. Интерактивный пример доступен здесь (я выбрал bitbucket из-за того, что его интерфейс мне кажется самым простым, да и не все же на гитхабе сидеть).
В нашем index.html, кроме верстки, мы внутри тэга head вставляем наш script:
В index.html кроме верстки внутри тэга head мы вставляем наш script :
Однако, несмотря на то, что мы все подключили, ничего не заработает и вылетит ошибка:

Что весьма печально, новички часто теряются и не понимают, что делать с красными строчками, словно это приговор какой-то, а не подсказка о том, что не так в вашей программе. Если перевести, то браузер говорит нам, что он не может прочитать свойство addEventListener нулевого значения. Значит, почему-то из DOM модели мы не получили наш элемент. Какой алгоритм действий нужно предпринять?
Во-первых, посмотрите в какой момент у вас вызывается javascript . Браузер читает ваш html-код сверху вниз, как вы читаете, например, книгу. Когда он увидит тэг script , то сразу исполнит его содержимое и продолжит чтение следующих элементов, не особо заботясь о том, что в своем скрипте вы пытаетесь получить элементы DOM, а он их еще не прочитал и, следовательно, не построил модель.
Что делать в таком случае? Просто добавьте атрибут defer внутрь вашего тэга скрипт (или async , но я не буду сейчас вдаваться в подробности их работы, это можно прочитать здесь ). Или можете просто переместить вниз ваш тэг script перед закрывающим body , это тоже сработает.
Во-вторых, проверьте опечатки. Изучите методологию БЭМ — она полезна ещё и тем, что вы хорошо знаете, как пишется ваш элемент — ведь пишите классы по единой логике, и стараетесь пользоваться только правильным английским языком. Или копируете сразу название элемента в JS файл.
Отлично. Теперь, когда вы поправили ошибки, можете насладиться рабочей версией кода по следующему адресу.
Загадочная ошибка
Больше всего новичков вводит в ступор странная ошибка последней строчки кода. Приведем пример:

В консоли выводится что-то непонятное. Если переводить, то буквально это «Неожиданный конец ввода» — и что с этим делать? Кроме того, новичок по привычке смотрит на номер строки. На ней вроде все нормально. И почему тогда консоль на нее указывает?
Все просто. Что бы понимать, как интерпретировать вашу программу, интерпретатору JS нужно знать, где заканчивается тело функции, и где заканчивается тело цикла. В данном варианте кода я абсолютно намеренно забыл последнюю фигурную скобку:
Теперь JavaScript не понимает, где у него конец тела функции, а где конец цикла и не может интерпретировать код.
Что делать в данном случае? В любом современном редакторе кода, если вы поставите курсор перед открывающей скобкой, подсветится его закрывающий вариант (если редактор еще не начал подчеркивать эту ошибку красным цветом). Просмотрите код еще раз внимательно, держа в голове, что в JS не бывает одиноких фигурных скобок. Проблемный вариант можно посмотреть здесь, а исправленный — вот тут.
Дробим код
Чаще всего стоит заниматься написанием кода, тестируя его работу небольшими кусочками. Или как нормальный человек изучить TDD К примеру, вам нужно простую программу, которая принимает данные на вход от пользователя, складывает их в массив и после этого выводит их средние значения:
На первый неискушенный взгляд, в данном коде вполне все нормально. В нем есть основная логика, раздробленная на две функции, каждую из которой можно применять потом отдельно. Однако опытный программист сразу скажет, что это не заработает, ведь из prompt данные к нам приходят в виде строки. Причем JS (таков его толерантно-пофигистичный характер) нам все запустит, но на выходе выдаст настолько невероятную чепуху, что даже будет непросто понять, как мы дошли до жизни такой. Итак, давайте попробуем что-нибудь посчитать в нашем интерактивном примере. Введем допустим число 3 в количество переменных, и 1 2 3 в поле ввода данных:

Что? Чего? Ладно, это JavaScript. Поговорим лучше, как мы могли бы избежать такого странного вывода. Надо было писать на Python, он бы по-человечески предупредил нас об ошибке. Нам надо было после каждого подозрительного момента сделать вывод типа переменных и смотреть, в каком состоянии находится наш массив.
Вариант кода, в котором вероятность неожиданного вывода снижена:
Иными словами, все подозрительные места, в которых что-то могло пойти не так, я вывел в консоль, чтобы убедиться, что все идет так, как я ожидаю. Конечно, данные console.log — детские игрушки и в норме, естественно, нужно изучить любую приличную библиотеку для тестирования. Например эту. Результат этой отладочной программы можно увидеть в инструментах разработчика здесь. Как починить, я думаю, вопросов не будет, но если если интересно, то вот (и да, это можно сделать просто двумя плюсами).

Шаг вперед: осваиваем Chrome Dev Tools
Дебаг с использованием console.log в 2019 — это уже несколько архаичная штука (но мы все равно ее никогда ее не забудем, она уже нам как родная). Каждый разработчик, который мечтает носить гордое звание профессионала, должен освоить богатый инструментарий современных средств разработки.
Попробуем починить проблемные места в нашем коде с помощью Dev Tools. Если нужна документация с примерами, всё можно прочитать вот здесь. А мы попробуем разобрать предыдущий пример с помощью Dev Tools.
Итак, открываем пример. У нас явно запрятался какой-то баг в коде, но как понять, в какой момент JavaScript начал что-то неправильно считать? Правильно, оборачиваем эту радость тестами на тип переменной, это же очень просто Идем во вкладку Sources в инструментах разработчика. Откройте файл code.js . У вас будут 3 части: первая слева, в которой отображается список файлов и вторая — в которой у нас отображается код. Но больше всего информации мы сможете почерпнуть из третьей части снизу, в которой отображается ход выполнения нашего кода. Давайте поставим breakpoint на 15 строчке (для этого надо щелкнуть по номеру строки в окне, где у нас отображается код, после чего у вас появится голубая метка). Перезапустите страницу, и введите любые значения в нашу программу.

Теперь вы можете вытащить из нижней панели debug массу полезной информации. Вы обнаружите, что JS не особенно задумываясь над типом переменных ведь статистические языки тупо лучше и нужно писать только на них, чтобы получать предсказуемо работающие и быстрые программы складывает переменные в виде строки в наш массив. Теперь, осознав картину происходящего, мы можем принять контрмеры.
Учимся перехватывать ошибки

Конструкция try… catch встречается во всех современных языках программирования. Зачем эта синтаксическая конструкция нужна практически? Дело в том, что при возникновении ошибки в коде, он останавливает свое выполнение на месте ошибки — и все, дальнейшие инструкции интерпретатор не исполнит. В реально работающем приложении, из нескольких сотен строчек кода, нас это не устроит. И предположим, что мы хотим перехватить код ошибки, передать разработчику ее код, и продолжить выполнение дальше.
Наша статья была бы неполной без краткого описания основных типов ошибки в JavaScript:
- Error — общий конструктор объекта ошибки.
- EvalError — тип ошибки, появляющийся во время ошибок исполнения eval() , но не синтаксических, а при неправильном использовании этой глобальной функции.
- RangeError — происходит, когда вы выходите за пределы допустимого диапазона в исполнении вашего кода.
- ReferenceError — происходит, когда вы пытаетесь вызвать переменную, функцию или объект, которых нет в программе.
- SyntaxError — ошибка в синтаксисе.
- TypeError — происходит при попытке создания объекта с неизвестным типом переменной или при попытке вызова несуществующего метода
- URIError — редко встречающий код, который возникает при неправильном использовании методов encodeURL и DecodeURL.
Давайте создадим самый простой калькулятор (даже калькулятором его называть громко, я бы сказал:«исполнитель введенных выражений»). Его интерактивный пример можно найти здесь. Хорошо, давайте теперь посмотрим на наш код:
Если вы попробуете ввести корректное математическое выражение, то все сработает нормально. Однако попробуйте ввести некорректное выражение, к примеру, просто строку, тогда программа выведет пользователю соответствующее предупреждение.
Надеюсь, вы прочитаете еще статьи, в которых объясняются другие части перехвата ошибок, такие например, как эта , чтобы расширить свое понимание в отладке программ, и изучите другие синтаксические конструкции, такие как finally , а также генерацию своих собственных ошибок.
На этом все. Надеюсь, эта статья оказалась полезна и теперь, при отладке приложений, вы будете чувствовать себя более уверенно. Мы разобрали типичные ошибки от самых элементарных, которые делают новички программирующие на JS всего несколько дней, до техники перехвата ошибок, которые применяют более продвинутые разработчики.