Можете ли вы добавить число и алфавит?
Скажем, если я попрошу вас дать мне результат сложения 1
и H
сможете ли вы дать мне ответ?
Очевидный ответ – НЕТ.
То же самое относится и к JavaScript!Если вы добавляете 1 и H в JavaScript или при попытке выполнить операции над двумя операндами несопоставимого типа, JavaScript выдает Ошибка типа
.
Итак, вы можете сказать в технических терминах, что ‘ TypeError выдается, когда операнд или аргумент, переданный функции, несовместим с типом, ожидаемым этим оператором или функцией ‘.
Поэтому становится необходимым убедиться, что переменные должны иметь одинаковые типы данных, прежде чем выполнять какую-либо операцию. Несоответствие типов приводит к ошибке при выполнении всей программы.
Поэтому становится необходимым убедиться, что переменные должны иметь одинаковые типы данных, прежде чем выполнять какую-либо операцию. Несоответствие типов приводит к ошибке при выполнении всей программы.
Типы ошибок типа
Например, вы получите Uncaught TypeError
если вы пытаетесь преобразовать число в символ верхнего регистра. As toUpperCase()
– это функция для преобразования строки в символы верхнего регистра. Это выдаст ошибку для следующей структуры кода.
Структура кода
var num=1; i.toUpperCase();
Ошибка
Как избавиться от этой ошибки неперехваченного типа: Не удается установить свойство
Существует множество способов преодолеть эту ошибку.
1. Использование функции toString() Вы можете сначала использовать функцию toString() для преобразования числа в строку а затем вы можете преобразовать эту строку в символы верхнего регистра, используя функцию toUpperCase().
var num = 1; try { num.toString().toUpperCase(); // Convert number into string first } catch(err) { document.getElementById("demo").innerHTML = err.name; }
Выход : 1
2. Использование конструктора new String() предопределенного класса
var num = 1; num=new String(num); try { num.toUpperCase(); // You cannot convert a number to upper case } catch(err) { console.log(err.name); }
Выход : 1
Вот еще несколько ошибок TypeError, которые могут быть вызваны JavaScript в разных браузерах.
Ошибка типа, связанная с console.log()
TypeError: Property 'log' of object # is not a function (Chrome) TypeError: console.log is not a function (Firefox) TypeError: 'your string' is not a function (evaluating 'console.log("your string")') (Safari) TypeError: Function expected (IE)
Ошибка типа, связанная с запросом()
TypeError: Property 'prompt' of object [object Object] is not a function (Chrome) TypeError: prompt is not a function (Firefox) TypeError: 'a string, this could vary' is not a function (evaluating 'prompt("your question")') (Safari) TypeError: Function expected (IE)
Ошибка типа, связанная с подтверждением()
TypeError: Property 'confirm' of object [object Object] is not a function (Chrome) TypeError: confirm is not a function (Firefox) TypeError: 'a string, this could vary' is not a function (evaluating 'confirm("your question")') (Safari) TypeError: Function expected (IE)
Первоисточник: Первоисточник:
Оригинал: “https://dev.to/lambdatesting/typeerror-javascript-pni”