DevGang
Авторизоваться

Понимание типов ошибок JavaScript

JavaScript, язык, обеспечивающий интерактивные и динамические аспекты Интернета, стал неотъемлемой частью современной веб-разработки. При написании кода на JavaScript разработчики часто сталкиваются с ошибками, которые могут быть сложными для отладки.

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

1. Синтаксическая ошибка:

  • Синтаксические ошибки возникают, когда есть ошибка в структуре вашего кода.
  • Эти ошибки обнаруживаются движком JavaScript на этапе синтаксического анализа.
  • Распространенные причины включают отсутствие круглых скобок, несовпадающие фигурные скобки или опечатки в именах переменных/функций.
  • Сообщение об ошибке обычно указывает на строку, в которой произошло нарушение синтаксиса.
// Example with missing closing parenthesis
console.log('Hello World';
console.log('Hello World';
            ^^^^^^^^^^^^^
SyntaxError: missing ) after argument list

2. Ошибка ссылки:

  • Ошибки ссылок возникают при попытке сослаться на переменную или функцию, которые не были объявлены.
  • Это часто случается при использовании переменной до того, как она была определена, или при попытке получить доступ к свойствам с неопределенными или нулевыми значениями.
  • Правильное объявление переменных и обеспечение их соответствия области видимости помогает предотвратить ошибки ссылок.
// Example referencing an undeclared variable
console.log(undefinedVariable);
console.log(undefinedVariable);
            ^^^^^^^^^^^^^^^^^
ReferenceError: undefinedVariable is not defined

3. Ошибки с типом данных:

  • Ошибки с типом данных возникают, когда операция выполняется с неподходящим типом данных.
  • Примеры включают попытку вызвать метод для несуществующей функции или доступ к свойству для несуществующего объекта.
  • Ошибки типов часто устраняются путем проверки типов переменных перед выполнением операций.
// Example calling a number as a function
let number = 42;
number();
number();
^^^^^^
TypeError: number is not a function

4. Ошибка диапазона:

  • Ошибки диапазона возникают, когда числовое значение выходит за пределы допустимого диапазона. Обычно это связано с методами или операциями, которые ожидают определенного числового диапазона.
  • Ошибки диапазона часто устраняются путем проверки входных значений перед их использованием в операциях, требующих определенных числовых требований.
  • Используйте условные операторы, чтобы проверить, попадает ли значение в допустимый диапазон, прежде чем выполнять операцию.
// Example creating an array with a negative length
let arr = new Array(-1);
let arr = new Array(-1);
          ^^^^^^^^^^^^^
RangeError: Invalid array length

5. Ошибка URI

  • Ошибки URI возникают, когда encodeURI() или decodeURI() передаются недопустимые параметры.
  • Эти ошибки связаны с кодированием и декодированием унифицированных идентификаторов ресурсов, таких как URL.
  • Убедитесь, что строки ввода, предоставляемые encodeURI() или decodeURI(), соответствуют стандартам URI. Проверяйте введенные пользователем данные, чтобы предотвратить передачу неправильно сформированных URI.
// Example attempting to decode an invalid URI
decodeURI('%');
decodeURI('%');
           ^
URIError: URI malformed

6. Внутренняя ошибка

  • Эти ошибки могут быть вызваны ограничениями или багами в движке JavaScript, проблемами с памятью или другими непредвиденными внутренними проблемами.
  • Например, эта ошибка возникает чаще всего, когда: слишком много случаев переключения, слишком много круглых скобок в регулярном выражении, слишком большой инициализатор массива, слишком много рекурсии, слишком много данных, и стек превышает свой критический размер.
  • В упомянутых сценариях движок JavaScript перегружается, что приводит к возникновению внутренней ошибки.
switch(condition) {
    case 1:
    ...
    break
    case 2:
    ...
    break
    case 3:
    ...
    break
    case 4:
    ...
    break
    case 5:
    ...
    break
    case 6:
    ...
    break
    case 7:
    ...
    break
    ... up to 500 cases
    }

7. Ошибка оценки (устарела):

  • EvalError устарел и обычно не используется в современном JavaScript. Он предназначался для представления ошибок, возникающих при использовании функции eval().
  • Текущие движки JavaScript и спецификации ECMAScript не выдают эту ошибку.
  • Тем не менее, он по-прежнему доступен для обратной совместимости.
// Example of eval error
try{
  throw new EvalError("'Throws an error'")
}catch(error){
  console.log(error.name, error.message)
}
EvalError 'Throws an error'

Подводя итог, можно сказать, что работа с ошибками JavaScript похожа на помощь друга, который ведет вас в вашем приключении с программированием. Вместо того, чтобы рассматривать ошибки как большие проблемы, думайте о них как о советах, показывающих, как сделать ваш код сильнее. Когда вы узнаете об этих проблемах и исправляете их, вы не просто делаете все правильно; вы действительно преуспеваете в том, чтобы убедиться, что ваш код хорошо взаимодействует с компьютером. Продолжайте наслаждаться своим путешествием по программированию!

Источник:

#JavaScript
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу