MDN裏面涵蓋了全部web開發的知識,對開發者學習和夯實基礎來講就是一個寶庫。web
將官網上的主要知識點抽離,組合成本身的知識網絡。正則表達式
每一個人的知識體系是不一樣的,但又是各有相同之處,但願個人整理對您有幫助。express
《重讀MDN》系列是做者會堅持下去的,旨在查漏補缺,讓本身知識的盲區能縮小些。數組
前置知識
1.eval() 函數 會將傳入的字符串當作 JavaScript 代碼進行執行。2.URI 統一資源標識符,包括統一資源名稱 (URN) 和統一資源定位器 (URL),是一個用於標識某一互聯網資源名稱的字符串,這些資源包括 HTML 頁面、XML 文檔、圖像、多媒體文件等等。微信
除了通用的Error構造函數外,JavaScript還有7個其餘類型的錯誤構造函數。網絡
EvalError
EvalError表明了一個關於 eval 函數的錯誤.此異常再也不會被JavaScript拋出,可是EvalError對象仍然保持兼容性.app
try { throw new EvalError('Hello', 'someFile.js', 10);} catch (e) { console.log(e instanceof EvalError); // true console.log(e.message); // "Hello" console.log(e.name); // "EvalError" console.log(e.fileName); // "someFile.js" console.log(e.lineNumber); // 10 console.log(e.columnNumber); // 0 console.log(e.stack); // "@Scratchpad/2:2:9\n"}
InternalError
InternalError 對象表示出如今JavaScript引擎內部的錯誤。例如:"InternalError: too much recursion"(內部錯誤:遞歸過深)。函數
當JavaScript引擎出現內部錯誤時將會拋出InternalError。學習
示例場景一般爲某些成分過大,例如:flex
"too many switch cases"(過多case子句);"too many parentheses in regular expression"(正則表達式中括號過多);"array initializer too large"(數組初始化器過大);"too much recursion"(遞歸過深)。
RangeError
RangeError對象表示當一個值不在其所容許的範圍或者集合中一個錯誤。
試圖傳遞一個number參數給一個範圍內不包含該number的函數時則會引起RangeError。當傳遞一個不合法的length值做爲Array 構造器的參數建立數組,或者傳遞錯誤值到數值計算方法(Number.toExponential(),Number.toFixed() ,Number.toPrecision()),會出現RangeError。
ReferenceError
ReferenceError(引用錯誤) 對象表明當一個不存在的變量被引用時發生的錯誤。
當你嘗試引用一個未被定義的變量時,將會拋出一個 ReferenceError 。
SyntaxError
SyntaxError 對象表明嘗試解析語法上不合法的代碼的錯誤。
當Javascript語言解析代碼時,Javascript引擎發現了不符合語法規範的tokens或token順序時拋出SyntaxError.
TypeError
TypeError(類型錯誤) 對象用來表示值的類型非預期類型時發生的錯誤。
當傳入函數的操做數或參數的類型並不是操做符或函數所預期的類型時,將拋出一個 TypeError 類型錯誤。
URIError
URIError 對象用來表示以一種錯誤的方式使用全局URI處理函數而產生的錯誤。
當向全局 URI 處理函數傳遞一個不合法的URI時,URIError 錯誤會被拋出。
語法
都是拋出錯誤,只是錯誤類型不一樣
儘管如此,他們的語法仍是同樣的
new Error([message[, fileName[, lineNumber]]])
參數
1.message 可選參數.人類可閱讀的關於錯誤的描述2.fileName(非標準) 可選參數.代碼中致使異常的文件的文件名3.lineNumber(非標準) 可選參數.代碼中致使異常的代碼的行號
參考文獻
Error[1]
References
[1]
Error: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Error
本文分享自微信公衆號 - 全棧大佬的修煉之路(gh_7795af32a259)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。