ECMA-262 定義了下列 7 種錯誤類型:
1.Error 錯誤
2.EvalError 全局錯誤 eval函數沒有正確執行
3.RangeError 范圍錯誤
4.ReferenceError 參數錯誤 引用了一個不存在的變量
5.SyntaxError 語法錯誤(標點符號,括號配對等)
6.TypeError 類型錯誤:表示值的類型非預期類型時發生的錯誤
7.URIError URI參數錯誤
涉及到encodeURI、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape();
具體error信息(更新中)
1. XXX is not defined: XXX未定義
舉一堆栗子;
變量未聲明
console.log(b);
控制台顯示:Uncaught ReferenceError: b is not defined
打錯單詞
conso0le.log(b);
控制台顯示: Uncaught ReferenceError: conso0le is not defined
2. XXX is not a function: XXX不是一個函數
給argumments用了數組的方法
function testFn(){ arguments.pop(); } testFn(1,2);
控制台顯示: Uncaught TypeError: arguments.pop is not a function
非匿名函數沒寫函數名
newDiv.onclick = function(){}
控制台顯示:Uncaught SyntaxError: Function statements require a function name
3. Uncaught TypeError: catch 語句沒有捕獲到錯誤
命名不規范
var 2 = box.offsetTop;
控制台顯示: Uncaught SyntaxError: Unexpected number
4. Invalid array length (Chrome)傳遞了一個不合法的值
5. Invalid or unexpected token: 錯誤符號(中文標點等)
標點符號不匹配:
wrap.innerHTML = "<div style = "background : orange">this is a div</div>";
控制台顯示:Uncaught SyntaxError: Unexpected identifier;
6. Identifier XXX has already been declared:重復聲明變量
(var聲明不會error,盡管這樣,也不推薦重新聲明變量)
7. Invalid left-hand side in assignment: 運算符左側的值不合法