javascript錯誤類型有如下幾種:
①SyntaxError: 語法錯誤
②ReferenceError: 引用錯誤 要用的東西沒找到
③RangeError: 範圍錯誤 專指參數超範圍
④TypeError: 類型錯誤 錯誤的調用了對象的方法
⑤EvalError: eval()方法錯誤的使用
⑥URIError: url地址錯誤javascript
解析代碼時發生的語法錯誤java
var 2b; //Uncaught SyntaxError: Unexpected number
引用了一個不存在的變量ide
console.log(a); //Uncaught ReferenceError: Invalid left-hand side in assignment
超出有效範圍函數
var a= new Array(-1); //Uncaught RangeError: Invalid array length
狀況一:變量或參數不是預期類型,好比,對字符串、布爾值、數值等原始類型的值使用new命令,就會拋出這種錯誤,由於new命令的參數應該是一個構造函數。url
var a= new abc; //Uncaught TypeError: abc is not a function
狀況二:調用對象不存在的方法code
var b; b.c(); //Uncaught TypeError: Cannot read property c of undefined
與url相關函數參數不正確,主要是encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()這六個函數。orm
decodeURI('%2') //Uncaught URIError: URI malformed
eval函數沒有被正確執行對象
eval(2b) //Uncaught SyntaxError: Invalid or unexpected token
若是不想使用系統設置的錯誤信息(例如前面提到的6種),能夠自定義錯誤,例如讓一個函數須要傳入一個字符串,可是傳入了空值,能夠new
不一樣的錯誤類型,並自定義錯誤提示語來讓系統拋出信息。token
function check(string){ if(!string){ throw new Error("內容不存在"); //throw new TypeError("內容不存在") } }