>  기사  >  웹 프론트엔드  >  JavaScript의 6가지 오류 유형 공유

JavaScript의 6가지 오류 유형 공유

小云云
小云云원래의
2018-02-05 10:21:361523검색

js의 콘솔 오류 메시지는 크게 두 가지 범주로 나누어집니다. 첫 번째 범주는 구문 오류입니다. 사전 구문 분석 과정에서 이러한 유형의 오류가 발생하면 전체 js 파일이 실행되지 않습니다. 또 다른 유형의 오류를 집합적으로 예외라고 합니다. 이러한 유형의 오류는 오류가 발생한 줄 뒤의 코드를 실행할 수 없게 만들지 만 해당 줄 앞의 코드는 영향을 받지 않습니다.

1. SyntaxError: 구문 오류

// 1. Syntax Error: 语法错误
// 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. Uncaught ReferenceError: 참조 오류

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

// 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 new关键字后接基本类型
var p = new 456      // Uncaught TypeError: 456 is not a constructor

5.URIError, URL 오류

주로 관련 함수의 매개변수가 올바르지 않습니다.

decodeURI("%")     // Uncaught URIError: URI malformed at decodeURI

URI 관련 매개변수가 올바르지 않을 때 오류가 발생합니다. 주로 encodeURI, decodeURI(), encodeURIComponent(), decodeURIComponent(), escape() 및 unescape()의 6개 함수와 관련됩니다.

6. EvalError eval() 함수 실행 오류

ES5 이하의 JavaScript에서는 eval() 함수가 올바르게 실행되지 않으면 evalError 오류가 발생합니다.

예를 들어 다음 상황은

var myEval = eval;
myEval("alert('call eval')");

ES5 이상의 JavaScript에서는 이 오류가 더 이상 발생하지 않지만 new 키워드를 통해 이러한 유형의 오류 프롬프트를 사용자 정의할 수 있다는 점에 유의해야 합니다.

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

new Error([message[,fileName[,lineNumber]]]),

첫 번째 매개변수는 오류 메시지를 나타내고, 두 번째 매개변수는 파일 이름, 세 번째 매개변수는 줄 번호를 나타냅니다.

관련 권장 사항:

JS 일반적인 오류 유형 요약

php 오류 유형 및 보호 방법에 대한 자세한 설명

php 일반적인 오류 유형 및 보호 방법

위 내용은 JavaScript의 6가지 오류 유형 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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