在寫js程式碼時出現錯誤是領頭痛的,對於一個js剛入門的小白來說,js出現錯誤可能要找上很久,心態都蹦了。讓我們一起來看看這篇文章吧
js常見錯誤類型
#(1)SyntaxError
SyntaxError是解析程式碼時發生的語法錯誤
// 變數名稱錯誤
var 1a;
//缺少括號
console.log 'hello');
(2)ReferenceError
ReferenceError是引用一個不存在的變數時發生的錯誤。
unknownVariable
// ReferenceError: unknownVariable is not defined
另一個觸發場景是,將一個值分配給無法分配的對象,例如對函數的運行結果或者this賦值。
console.log() = 1
// ReferenceError: Invalid left-hand side in assignment
this = 1
#// ReferenceError: Invalid left-hand side in assignment
上面程式碼對函數console.log的運行結果和this賦值,結果都引發了ReferenceError錯誤
(3)RangeError
#RangeError是當一個值超出有效範圍時發生的錯誤。主要有幾種情況,一是陣列長度為負數,二是Number物件的方法參數超出範圍,以及函數堆疊超過最大值。
new Array(-1)
// RangeError: Invalid array length
(1234).toExponential(21)
// RangeError: toExponential () argument must be between 0 and 20
(4)TypeError
TypeError是變數或參數不是預期類型時發生的錯誤。例如,對字串、布林值、數值等原始類型的值使用new指令,就會拋出這種錯誤,因為new指令的參數應該是建構子。
new 123
//TypeError: number is not a func
var obj = {}; obj.unknownMethod()
#// TypeError: undefined is not a function
上面程式碼的第二種情況,呼叫物件不存在的方法,會拋出TypeError錯誤。
(5)URIError
URIError是URI相關函數的參數不正確時拋出的錯誤,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape ()和unescape()這六個函數。
decodeURI('%2')
// URIError: URI malformed
(6)EvalError
#eval函數沒有正確執行時,會拋出EvalError錯誤。這個錯誤類型已經不再在ES5中出現了,只是為了確保與先前程式碼相容,才繼續保留。
以上這6種衍生錯誤,連同原始的Error對象,都是建構子。開發者可以使用它們,人為產生錯誤物件的實例。
new Error("出錯了!");
new RangeError("出錯了,變數超出有效範圍!");
new TypeError("出錯了,變數類型無效!") ;
上面程式碼表示新建錯誤物件的實例,實質就是手動拋出錯誤。可以看到,錯誤物件的建構子接受一個參數,代表錯誤提示訊息(message)。
相關推薦:
適合PHP初學者和程式設計師的html/css/js 中文手冊
以上是JS 常見的錯誤類型 小結的詳細內容。更多資訊請關注PHP中文網其他相關文章!