>  기사  >  웹 프론트엔드  >  일반적인 JS 오류 유형 요약

일반적인 JS 오류 유형 요약

韦小宝
韦小宝원래의
2017-11-25 09:48:471342검색

js코드를 작성할 때 발생하는 오류는 이제 막 시작한 js초보에게는 js에서 오류를 찾는 데 오랜 시간이 걸리므로 정신이 멍해질 수 있습니다. 이 글도 함께 살펴볼까요

일반적인 js 오류 유형

(1) SyntaxError

SyntaxError는 코드를 파싱할 때 발생하는 구문 오류


//변수 이름 오류

var 1a;


// 대괄호 누락
console.log 'hello');


(2) ReferenceError
ReferenceError는 존재하지 않는 변수를 참조할 때 발생하는 오류입니다.

unknownVariable

// ReferenceError: 알 수 없는 변수가 정의되지 않았습니다

또 다른 트리거 시나리오는 함수 또는 this의 결과를 할당하는 것과 같이 할당할 수 없는 개체에 값을 할당하는 것입니다.

console.log() = 1

// ReferenceError: 잘못된 왼쪽 할당

this = 1

// ReferenceError: 잘못된 왼쪽 할당

위 코드는 함수 콘솔에 대한 것입니다. .log 실행 결과와 이 할당 모두 ReferenceError

(3) RangeError

RangeError는 값이 유효한 범위를 초과할 때 발생하는 오류입니다. 몇 가지 주요 상황이 있습니다. 하나는 배열 길이가 음수이고, 다른 하나는 Number 객체의 메서드 매개변수가 범위를 벗어났으며, 함수 스택이 최대값을 초과하는 것입니다.

new Array(-1)

// RangeError: 잘못된 배열 길이

(1234).toExponential(21)

// RangeError: toExponential() 인수는 0에서 20 사이여야 합니다

(4)TypeError

TypeError는 변수나 매개변수가 예상한 유형이 아닐 때 발생하는 오류입니다. 예를 들어 문자열, 부울 값, 숫자 값과 같은 기본 유형에 대해 new 명령을 사용하는 경우 new 명령의 매개변수가 생성자여야 하므로 이 오류가 발생합니다.

new 123

//TypeError: number is not a func

var obj = {}; obj.unknownMethod()

// TypeError: undefine is not a function

위 코드의 두 번째 경우는 다음을 호출하세요. 객체가 존재하지 않으면 TypeError가 발생합니다.

(5) URIError

URIError는 주로 encodeURI(), decodeURI(), encodeURIComponent(), decodeURIComponent(), escape() 및 unescape()와 관련된 URI 관련 함수의 매개 변수가 올바르지 않을 때 발생하는 오류입니다. 기능.

decodeURI('%2')

// URIError: URI Malformed

(6) EvalError

eval 함수가 올바르게 실행되지 않으면 EvalError 오류가 발생합니다. 이 오류 유형은 더 이상 ES5에 나타나지 않으며 이전 코드와의 호환성을 보장하기 위해서만 유지됩니다.

위의 6개 파생 오류는 원래 Error 개체와 함께 모두 생성자입니다. 개발자는 이를 사용하여 오류 개체의 인스턴스를 인위적으로 생성할 수 있습니다.

new Error("오류가 발생했습니다!");
new RangeError("오류가 발생했습니다. 변수가 유효한 범위를 벗어났습니다!")
new TypeError("오류가 발생했습니다. 변수 유형이 잘못되었습니다!") ;

위 코드는 새로운 오류를 나타냅니다. 객체 인스턴스는 본질적으로 수동으로 오류를 발생시킵니다. 보시다시피 오류 개체의 생성자는 오류 메시지를 나타내는 매개 변수를 받아들입니다.

관련 권장 사항:

프런트 엔드 JS 면접 질문

Native js는 이동 가능한 프롬프트 div 상자 소스 코드를 구현합니다.

html/css/js는 PHP 초보자와 프로그래머에게 적합합니다. 중국어 매뉴얼

위 내용은 일반적인 JS 오류 유형 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.