JS中常見的幾種報錯類型


1、JS中常見的幾種錯誤

1.1、SyntaxError(語法錯誤)

解析代碼時發生的語法錯誤

var 1a;   //Uncaught SyntaxError: Invalid or unexpected token 變量名錯誤 
console.log 'hello');  //Uncaught SyntaxError: Unexpected string 缺少括號

1.2、ReferenceError(引用錯誤)

console.log(a);  //Uncaught ReferenceError: a is not defined 引用了一個不存在的變量
console.log()= 1;  //Uncaught ReferenceError: Invalid left-hand side in assignment 將變量賦值給一個無法被賦值的對象

1.3、RangeError(范圍錯誤)

var a = new Array(-1);  //Uncaught RangeError: Invalid array length 超出有效范圍

1.4、TypeError(類型錯誤)

變量或參數不是預期類型,比如,對字符串、布爾值、數值等原始類型的值使用new命令,就會拋出這種錯誤,因為new命令的參數應該是一個構造函數。

var a = new 123;  //Uncaught TypeError: 123 is not a function

調用對象不存在的方法

var a;
a.aa(); //Uncaught TypeError: Cannot read property 'aa' of undefined

1.5、URLError(URL錯誤)

與url相關函數參數不正確,主要是encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()這六個函數。

decodeURI('%2')  //Uncaught URIError: URI malformed

1.6、EvalError(eval錯誤)

eval函數沒有被正確執行

 

2、手動拋出錯誤

以上這6種派生錯誤,連同原始的Error對象,都是構造函數。開發者可以使用它們,人為生成錯誤對象的實例。

throw new Error("出錯了!"); 
throw new RangeError("出錯了,變量超出有效范圍!"); 
throw new TypeError("出錯了,變量類型無效!");

上面代碼表示新建錯誤對象的實例,實質就是手動拋出錯誤。可以看到,錯誤對象的構造函數接受一個參數,代表錯誤提示信息(message)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM