(1)syntaxerror
syntaxerror是解析**時發生的語法錯誤
// 變數名錯誤
var1a;
// 缺少括號
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("出錯了!");
newrangeerror("出錯了,變數超出有效範圍!");
newtypeerror("出錯了,變數型別無效!");
上面**表示新建錯誤物件的例項,實質就是手動丟擲錯誤。可以看到,錯誤物件的建構函式接受乙個引數,代表錯誤提示資訊(message)。
js常見錯誤型別
js 錯誤型別 a uncaught typeerror failed to execute getcomputedstyle on window parameter 1 is not of type element 未捕獲的型別錯誤 不能在 視窗 環境上呼叫執行 getcomputedstyle ...
js中常見的錯誤型別
當 try 語句塊中的 出現錯誤時,會建立並丟擲乙個 error 物件,物件中包含錯誤型別和錯誤描述兩個屬性 error.response 錯誤型別 說明evalerror 使用 eval 函式時發出錯誤,會丟擲該錯誤 internalerror 由 j ascript 引擎內部錯誤導致的異常,會丟...
JS錯誤型別
一 syntaxerror 語法錯誤 這種錯誤是最低階的錯誤但是最常見的錯誤,這是在開發中多個標點少個括號,常見於新手 二 referenceerror 引用錯誤 呼叫的變數或者方法未被定義便會報此錯誤 三 typeerror 型別錯誤 資料型別錯誤,最常見的是vue中父傳子時props接收引數時容...