> 웹 프론트엔드 > 프런트엔드 Q&A > JavaScript 프로그램 오류의 유형은 무엇입니까?

JavaScript 프로그램 오류의 유형은 무엇입니까?

青灯夜游
풀어 주다: 2023-01-07 11:47:41
원래의
2543명이 탐색했습니다.

JavaScript 프로그램 오류 유형은 1. 오류, 2. EvalError, 4. ReferenceError(참조 오류), 6. TypeError,

JavaScript 프로그램 오류의 유형은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript의 오류 유형

ECMA-262에서는 7가지 오류 유형을 정의합니다.

  • ReferenceError

  • SyntaxError

  • TypeError

  • URIError

  • 여기서 Error는 기본 유형(다른 6개 유형의 상위 유형)이고 다른 유형은 이로부터 상속됩니다. 오류 유형은 드물며 일반적으로 브라우저에서 사용됩니다. 브라우저에 의해 던져졌습니다. 이 기본 유형은 주로 개발자가 사용자 정의 오류를 발생시키는 데 사용됩니다.

  • 1. 구문 오류(구문 오류):


  • 1.1 변수 이름이 사양을 준수하지 않습니다.
  • var 1 // Uncaught SyntaxError: Unexpected 
    
    number
    var 1a // Uncaught SyntaxError: Invalid or unexpected token
    로그인 후 복사

    1.2 키워드에 값 할당
function = 5 // Uncaught SyntaxError: Unexpected token =
로그인 후 복사

2. 오류( 참조 오류):

존재하지 않는 변수를 참조할 때 오류가 발생합니다. 함수의 결과나 할당할 수 없는 개체에 값을 할당합니다. 기능 할당.

2.1 존재하지 않는 변수에 대한 참조

a(); // Uncaught ReferenceError: a is not 

defined
console.log(b); // Uncaught ReferenceError: b is not defined
로그인 후 복사

2.2 할당할 수 없는 개체에 값 할당

console.log("abc") = 1 // Uncaught 

ReferenceError: Invalid left-hand side in assignment
로그인 후 복사
3. RangeError(범위 오류):


RangeError는 유효한 개체가 초과합니다. 범위 중에 오류가 발생했습니다. 몇 가지 주요 상황이 있습니다. 첫 번째는 배열 길이가 음수라는 것입니다. 두 번째는 Number 객체의 메서드 매개변수가 범위를 벗어났고, 함수 스택이 최대 크기를 초과한 것입니다.

3.1 배열 길이가 음수입니다.

[].length = -5; // Uncaught RangeError: Invalid 

array length
로그인 후 복사

3.2 Number 개체의 메서드 매개 변수가 범위를 벗어났습니다.

var num = new Number(12.34);
console.log(num.toFixed(-1)); // Uncaught RangeError: toFixed() digits argument must be 

between 0 and 20 at Number.toFixed
// 说明: toFixed方法的作用是将数字四舍五入为指定小数位数的数字,参数是小数点后的位数,范围为0

-20.
로그인 후 복사
4 TypeError:


변수 또는 매개 변수가 있을 때 발생하는 오류입니다. 예상된 유형이 아닙니다. 예를 들어 새 문자열, 부울 및 기타 기본 유형을 사용하고 호출 객체가 존재하지 않습니다. 새 명령의 매개변수가 생성자여야 하므로 메서드에서 이 오류가 발생합니다.

4.1 존재하지 않는 메소드 호출

123(); // Uncaught TypeError: 123 is not a 

function
var o = {};
o.run(); // Uncaught TypeError: o.run is not a function
로그인 후 복사

4.2 새 키워드 뒤에는 기본 유형

var p = new 456(); // Uncaught TypeError: 456 

is not a constructor
로그인 후 복사
5이 있습니다. URIError(URL 오류):


주로 관련 기능이 올바르지 않습니다.

decodeURI("%"); // Uncaught URIError: 

URI malformed at decodeURI
로그인 후 복사

::: 팁 알림: 주로 encodeURI, decodeURI(), 6개의 함수: encodeURIComponent(), decodeURIComponent(), escape() 및 unescape(). :::

6. EvalError eval() (함수 실행 오류): ES5 이하의 JavaScript에서는 eval() 함수가 올바르게 실행되지 않으면 evalError 오류가 발생합니다. 예를 들어 다음 상황:


var myEval = eval;
myEval("alert('call eval')");
需要注意的是:ES5以上的JavaScript中已经不再抛出该错误,但依然可以通过new关键字来自定义该类型

的错误提示。
로그인 후 복사
::: warning 어딘가에서 오류가 발생하고 코드를 수정하여 해결할 수 있다는 것을 알고 있는 경우 try-catch를 잘 활용하세요. try-catch를 사용하는 것은 적합하지 않습니다. 혹은 다양한 브라우저의 호환성 오류로 인해 발생하는 오류에 대해서는 적합하지 않다고 판단할 수 있습니다. 브라우저는 문제를 해결하기 위해 이 속성과 메서드가 이 브라우저에 존재하는지 여부를 확인할 수 있습니다. :::

new Error("出错了!");
new RangeError("出错了,变量超出有效范围!");
new TypeError("出错了,变量类型无效!");
로그인 후 복사

위 코드는 새로운 오류 개체의 인스턴스를 나타냅니다. 핵심은 오류를 수동으로 발생시키는 것입니다. 보시다시피, 오류 객체의 생성자는 오류 메시지(message)를 나타내는 매개변수입니다. 이러한 기본 오류 유형을 숙지하면 오류 발생 시 문제를 빠르게 찾아 해결할 수 있습니다.


【추천 학습:
javascript 고급 튜토리얼

위 내용은 JavaScript 프로그램 오류의 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿