解決錯誤前,首先要學會閱讀報錯信息
eg:Uncaught TypeError: ... is not a function
Uncaught 表示沒有被catch語句捕獲到的錯誤
TypeError 是錯誤類型
... is not a function 是消息體
整體意思就是: 代碼嘗試將...當作函數來使用,但是該...並不是一個函數
1.Uncaught TypeError: Cannot read property '' of undefined
常見的一種是在渲染 UI 組件時對於狀態的初始化操作不當,當你讀取一個未定義的對象的屬性或調用其方法時,這個錯誤會在 Chrome 中出現。
2.TypeError: ‘undefined’is not an object
這是在 Safari 中讀取屬性或調用未定義對象上的方法時發生的錯誤,Safari 使用了不同的錯誤消息提示語。
3.TypeError: 'null' is not an object
這是在 Safari 中讀取屬性或調用空對象上的方法時發生的錯誤,Safari 使用了不同的錯誤消息提示語。
undefined 通常是一個尚未分配的變量,而 null 表示該值為空。 要驗證它們不相等,請嘗試使用嚴格的相等運算符 ===
這種錯誤可能發生場景是:在加載元素之前嘗試在 JavaScript 中使用元素。 因為 DOM API 對於空白的對象引用返回值為 null。
4.(unknown): Script error
當未捕獲的 JavaScript 錯誤(通過window.onerror處理程序引發的錯誤,而不是捕獲在try-catch中)被瀏覽器的跨域策略限制時,會產生這類的腳本錯誤。這是一種瀏覽器安全措施,旨在防止跨域傳遞數據,否則將不允許進行通信。
5.TypeError: Object doesn’t support property
這是您在調用未定義的方法時發生在 IE 中的錯誤。 您可以在 IE 開發者控制台中進行測試。
6.TypeError: ... is not a function
調用未定義的函數時,在 Chrome 中產生的錯誤
7.Uncaught RangeError: Maximum call stack
當你調用一個不終止的遞歸函數時或者將值傳遞給超出范圍的函數,會報出的錯,檢查函數的遞歸調用,確保函數不是無限遞歸的
8. TypeError: Cannot read property ‘length’of undefined
因為讀取未定義變量的長度屬性,通常會在數組中找到定義的長度,但是如果數組未初始化或者變量名稱在另一個上下文中隱藏,則可能會遇到此錯誤。
var testArray = ["Test"];
function testFunction(testArray) {
for (var i = 0; i < testArray.length; i++) {
console.log(testArray[i]);
}
}
testFunction();
當你用參數聲明一個函數時,這些參數變成了函數作用域內的本地參數。這意味着即使你函數外有名為 testArray 的變量,在一個函數中具有相同名字的參數也會被視為本地參數。
9.Uncaught TypeError: Cannot set property ... of undefined
嘗試訪問一個未定義的變量時,它總是返回 undefined,我們不能獲取或設置任何未定義的屬性。
10.ReferenceError: ... is not defined
當您嘗試訪問未定義的變量或超出當前范圍的變量時,會引發此錯誤。
11.Uncaught exception: ReferenceError: Cannot assign to ‘this’
嘗試給一個不能被賦值的變量賦值時將發生該錯誤,確保不給函數函數的返回值或 this 關鍵字賦值。
12.Uncaught TypeError: Converting circular structure toJSON
該錯誤總是發生在使用 JSON.stringify 序列化一個存在循環引用的對象時,移除將要被轉換為 JSON 字符串對象內部的循環引用。
13.Unexpected token ;
通常發生在缺少括號或分號時,該錯誤提示的行號有時並不能指向正確的位置
14.Uncaught SyntaxError: Unexpected token ILLEGAL
字符串字面量缺少閉合的引號,確保所有字符串都包含閉合的引號。
