js 常見錯誤型別

2021-07-25 21:13:08 字數 1871 閱讀 7070

(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接收引數時容...