유형 오류: 자바스크립트

숫자와 알파벳을 추가할 수 있나요?

예를 들어, 1H를 더한 결과를 알려달라고 하면 답을 줄 수 있습니까?

분명한 대답은 NO입니다.

JavaScript에서도 마찬가지입니다!JavaScript에서 1과 H를 추가하거나 유형이 일치하지 않는 두 피연산자에 대해 작업을 수행하려고 하면 JavaScript에서 TypeError가 발생합니다.

따라서 기술적인 용어로 '함수에 전달된 피연산자 또는 인수가 해당 연산자 또는 함수에서 예상하는 유형과 호환되지 않을 때 TypeError가 발생합니다'라고 말할 수 있습니다.

따라서 어떤 작업을 수행하기 전에 변수가 동일한 데이터 유형인지 확인해야 합니다. 유형 불일치는 전체 프로그램을 실행하는 동안 오류를 생성합니다.

따라서 어떤 작업을 수행하기 전에 변수가 동일한 데이터 유형인지 확인해야 합니다. 유형 불일치는 전체 프로그램을 실행하는 동안 오류를 생성합니다.

TypeError의 종류



예를 들어 숫자를 대문자로 변환하려고 하면 Uncaught TypeError가 표시됩니다. As toUpperCase()는 문자열을 대문자로 변환하는 함수입니다. 다음 코드 구조에서는 오류가 발생합니다.

코드 구조
var num=1;
i.toUpperCase();

오류



이 Uncaught 유형 오류를 제거하는 방법: Cannot set property



이 오류를 극복할 수 있는 방법에는 여러 가지가 있습니다.

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

다음은 다른 브라우저에서 JavaScript에 의해 발생할 수 있는 몇 가지 TypeError입니다.

console.log()와 관련된 TypeError
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
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)

Confirm()과 관련된 TypeError
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)

원본 출처: lambdatest.com

좋은 웹페이지 즐겨찾기