javaScript中常见的几种报错类型
生活随笔
收集整理的這篇文章主要介紹了
javaScript中常见的几种报错类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一般我們運行代碼的時候,在控制臺報錯會相應的顯示你錯誤的行數,找到那一行,查找你相應的錯誤 1、xxx is not defined xxx 沒有定義 ? 2、xxx is not a function xxx 不是一個函數 xxx此時是undefined 3、Cannot read property 'xxx' of undefined 不能讀取undefined的xxx屬性 xxx前面的變量是undefined 4、Cannot set property 'xxx' of null 不能給null設置xxx屬性 xxx前面的變量是null 5、Invalid or unexpected token 標點符號可能是中文 6、Unexpected token a in JSON at position 0 使用JSON.parse進行解析json字符串時,解析的內容不合法 7、XMLHttpRequest cannot load http://XXXXXX. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://XXXXXX' is therefore not allowed access. 使用ajax請求數據時,產生跨域了 8、Illegal break statement 出現了非法語句 9、SyntaxError(語法錯誤) SyntaxError是解析代碼時發生的語法錯誤 // 變量名錯誤 var 1a;? // 缺少括號 console.log ('hello'; 10、ReferenceErro(引用錯誤) 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錯誤 11、RangeError(范圍錯誤) RangeError是當一個值超出有效范圍時發生的錯誤。主要有幾種情況,一是數組長度為負數,二是Number對象的方法參數超出范圍,以及函數堆棧超過最大值。 new Array(-1)
// RangeError: Invalid array length
(1234).toExponential(21)
// RangeError: toExponential() argument must be between 0 and 20 12、TypeError(類型錯誤) TypeError是變量或參數不是預期類型時發生的錯誤。比如,對字符串、布爾值、數值等原始類型的值使用new命令,就會拋出這種錯誤,因為new命令的參數應該是一個構造函數。 new 123
//TypeError: number is not a func var obj = {}; obj.unknownMethod()
// TypeError: undefined is not a function 上面代碼的第二種情況,調用對象不存在的方法,會拋出TypeError錯誤。 13、URIError(URI錯誤) URIError是URI相關函數的參數不正確時拋出的錯誤,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()這六個函數。 decodeURI('%2') // URIError: URI malformed 14、EvalError(eval錯誤) eval函數沒有被正確執行時,會拋出EvalError錯誤。該錯誤類型已經不再在ES5中出現了,只是為了保證與以前代碼兼容,才繼續保留。 以上這6種派生錯誤,連同原始的Error對象,都是構造函數。開發者可以使用它們,人為生成錯誤對象的實例。 new Error("出錯了!"); new RangeError("出錯了,變量超出有效范圍!"); new TypeError("出錯了,變量類型無效!"); 上面代碼表示新建錯誤對象的實例,實質就是手動拋出錯誤。可以看到,錯誤對象的構造函數接受一個參數,代表錯誤提示信息(message)。 15、錯誤舉例
// 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錯誤 11、RangeError(范圍錯誤) RangeError是當一個值超出有效范圍時發生的錯誤。主要有幾種情況,一是數組長度為負數,二是Number對象的方法參數超出范圍,以及函數堆棧超過最大值。 new Array(-1)
// RangeError: Invalid array length
(1234).toExponential(21)
// RangeError: toExponential() argument must be between 0 and 20 12、TypeError(類型錯誤) TypeError是變量或參數不是預期類型時發生的錯誤。比如,對字符串、布爾值、數值等原始類型的值使用new命令,就會拋出這種錯誤,因為new命令的參數應該是一個構造函數。 new 123
//TypeError: number is not a func var obj = {}; obj.unknownMethod()
// TypeError: undefined is not a function 上面代碼的第二種情況,調用對象不存在的方法,會拋出TypeError錯誤。 13、URIError(URI錯誤) URIError是URI相關函數的參數不正確時拋出的錯誤,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()這六個函數。 decodeURI('%2') // URIError: URI malformed 14、EvalError(eval錯誤) eval函數沒有被正確執行時,會拋出EvalError錯誤。該錯誤類型已經不再在ES5中出現了,只是為了保證與以前代碼兼容,才繼續保留。 以上這6種派生錯誤,連同原始的Error對象,都是構造函數。開發者可以使用它們,人為生成錯誤對象的實例。 new Error("出錯了!"); new RangeError("出錯了,變量超出有效范圍!"); new TypeError("出錯了,變量類型無效!"); 上面代碼表示新建錯誤對象的實例,實質就是手動拋出錯誤。可以看到,錯誤對象的構造函數接受一個參數,代表錯誤提示信息(message)。 15、錯誤舉例
- 找不到引入的.js文件
- js函數缺少括號),函數體缺少大括號}
- css代碼使用了//注釋,導致有的div內容出不來,然后也不報錯
- 定義了多個同名的變量
- 文檔未加載完畢,就開始執行js代碼導致的錯誤
- js 對象的函數未定義
轉載于:https://www.cnblogs.com/fengch/p/8656648.html
總結
以上是生活随笔為你收集整理的javaScript中常见的几种报错类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于YOLO算法的备忘
- 下一篇: 小带鱼上征信吗