JavaScript 常見錯誤以及原因

1. Uncaught TypeError: Cannot read property

JavaScript 開發(fā)人員最常遇到的錯誤。


image.png
導致原因

當讀取一個屬性或調用一個未定義對象的方法時,Chrome 中就會報出這樣的錯誤。

2.TypeError: undefined is not an object (evaluating '....')

TypeError: undefined is not an object (evaluating '....')
TypeError: null is not an object (evaluating 'null.a')
在 Safari 中讀取屬性或調用未定義對象上的方法時發(fā)生的錯誤,這與 Chrome 的上述錯誤基本相同,只是 Safari 使用不同的錯誤消息。

image.png

3.(unknown): Script Error

當未捕獲的 JavaScript 錯誤違背跨邊界原則時,就會發(fā)生腳本錯誤。例如,如果將 JavaScript 代碼托管在 CDN 上,則任何未被捕獲的錯誤(通過 window.onerror 處理程序發(fā)出的錯誤,而不是 try-catch 中捕獲到的錯誤)將僅報告為“腳本錯誤”。這是瀏覽器的一種安全措施,主要用于防止跨域傳遞數(shù)據(jù)的情況出現(xiàn)。

要獲取真實的錯誤消息,需要執(zhí)行以下操作:

Access-Control-Allow-Origin

將 Access-Control-Allow-Origin 設置為 , 表示可以從任何域正確訪問資源。 如有必要,也可以用自己的域名進行替換,例如:

Access-Control-Allow-Origin: www.example.com

以下是在各種環(huán)境中設置的一些示例:

  • Apache

在 JavaScript 文件夾中,創(chuàng)建一個 .htaccess 文件,并包含以下內容:

Header add Access-Control-Allow-Origin "*"
  • Nginx

將 add_header 指令添加到提供 JavaScript 文件的 location block 中:

location ~ ^/assets/ {
    add_header Access-Control-Allow-Origin *;
}
  • HAProxy

將以下內容添加到提供 JavaScript 文件的靜態(tài)資源配置后端:

rspadd Access-Control-Allow-Origin:\ *

在腳本標簽上設置 crossorigin =“anonymous”

在你的 HTML 源代碼中,為每一個腳本設置 Access-Control-Allow-Origin,在設置 SCRIPT 標簽中,設置crossorigin="anonymous"。在將 crossorigin 屬性添加到腳本標簽之前,請確保正在向腳本文件發(fā)送 header。在 Firefox 中,如果 crossorigin 屬性存在但 Access-Control-Allow-Origin 標題不存在,則腳本不會執(zhí)行。

4. TypeError: Object Doesn’t Support Property

TypeError: Object Doesn’t Support Property: 當調用未定義的方法時,IE 中會發(fā)生這樣的錯誤。
TypeError: ‘undefined’ Is Not a Function: chomre | firefox

image.png

image.png

5.Uncaught RangeError: Maximum Call Stack

這是在很多種情況,Chrome 中發(fā)生的錯誤,一種情況是當你調用一個不會終止的遞歸函數(shù)時。


image.png

6.TypeError: Cannot Read Property ‘length’

因為讀取了未定義長度屬性的變量。


image.png

7.Uncaught TypeError: Cannot Set Property

在 Chrome 瀏覽器中,如果 a 對象不存在,就會出現(xiàn)這種錯誤:


image.png

8.ReferenceError: Event Is Not Defined

嘗試訪問未定義的變量或當前范圍之外的變量時會引發(fā)此錯誤。


image.png

參考文獻: http://www.cnblogs.com/powertoolsteam/p/top-10-javascript-errors.html
https://dzone.com/articles/top-10-javascript-errors-from-1000-projects-and-ho-1

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容