JavaScript編程中會出現(xiàn)的錯誤類型有哪些?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
古浪ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
下面我們來看看在編譯是會發(fā)現(xiàn)的JavaScript錯誤是什么?
一、語法錯誤(Syntax Errors)
語法錯誤,也稱為解析錯誤,會發(fā)生在傳統(tǒng)編程語言的編譯和JavaScript的解析時。
例1,以下行導(dǎo)致語法錯誤,因為它缺少右括號。
<script type="text/javascript"> // window.print(; </script>
例2:
123consloe.log(123) // 未捕獲的語法錯誤:意外標(biāo)識符 console.123) // 未捕獲的語法錯誤: 出乎意料的數(shù)字
當(dāng)JavaScript中出現(xiàn)語法錯誤時,只有與語法錯誤包含在同一線程中的代碼才會受到影響,而其他線程中的其余代碼將被執(zhí)行,假設(shè)它們中的任何內(nèi)容都不依賴于包含錯誤的代碼。
二、運(yùn)行時錯誤(Runtime Errors)
運(yùn)行時錯誤(也稱為異常)是在JavaScript執(zhí)行期間(編譯/解釋之后)發(fā)生的錯誤。
1、引用錯誤(ReferenceError)
ReferenceError:引用一個不存在的變量時發(fā)生的錯誤;將一個值分配給無法分配的對象,比如對函數(shù)的運(yùn)行結(jié)果或者函數(shù)賦值就會發(fā)生的錯誤。
例如下面的情況:
// 引用了不存在的變量 a() // 未定義引用錯誤:a 未定義 console.log(b) // 未引用引用錯誤:b未定義 // 給一個無法被賦值的對象賦值 console.log("abc") = 1 // 未引用引用錯誤:左側(cè)賦值無效
2、范圍錯誤(RangeError)
RangeError:是一個在超出有效范圍時會發(fā)生的錯誤。主要有以下幾種情況:
1)、當(dāng)數(shù)組長度為負(fù)數(shù)時,發(fā)生錯誤;
2)、當(dāng)Number對象的方法參數(shù)超出范圍時,發(fā)生錯誤;
3)、當(dāng)函數(shù)堆棧超過最大值時,發(fā)生錯誤。
例如下面的情況:
// 數(shù)組長度為負(fù)數(shù) [].length = -5 // 范圍錯誤:無效的數(shù)組長度 // Number對象的方法參數(shù)超出范圍 var num = new Number(12.34) console.log(num.toFixed(-1)) // 范圍錯誤: 在Number.toFixed中,toFixEd()的數(shù)字參數(shù)必須在0到20之間。 // 說明: toFixed方法的作用是將數(shù)字四舍五入為指定小數(shù)位數(shù)的數(shù)字,參數(shù)是小數(shù)點(diǎn)后的位數(shù),范圍為0-20.
3、類型錯誤( TypeError)
TypeError:變量或參數(shù)不是預(yù)期類型時發(fā)生的錯誤。
例:在使用new字符串、布爾值等原始類型和調(diào)用對象不存在的方法就會拋出這種錯誤,因為new命令的參數(shù)應(yīng)該是一個構(gòu)造函數(shù)。
// 調(diào)用不存在的方法 123() // 類型錯誤: 123不是一個函數(shù) var o = {} o.run() // 類型錯誤: o.run 不是一個函數(shù) // new關(guān)鍵字后接基本類型 var p = new 456 // 類型錯誤: 456 不是構(gòu)造函數(shù)
4、URIError:URL相關(guān)函數(shù)錯誤使用
URIError:主要是URL相關(guān)函數(shù)的參數(shù)不正確。
例如下面的情況:
decodeURI("%1") // URIError: 在解碼過程中變形了的URI
URI相關(guān)參數(shù)不正確時拋出的錯誤,主要涉及以下六個函數(shù):
encodeURI、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()
5、EvalError:eval()函數(shù)執(zhí)行錯誤
EvalError:在ES5以下的JavaScript中,當(dāng)eval()函數(shù)沒有被正確執(zhí)行時,會拋出evalError錯誤。
例如下面的情況:
var myEval = eval; myEval("alert('call eval')");
需要注意的是:ES5以上的JavaScript中已經(jīng)不再拋出該錯誤,但依然可以通過new關(guān)鍵字來自定義該類型的錯誤提示。
三、邏輯錯誤
邏輯錯誤可能是最難追蹤的錯誤類型。這些錯誤不是語法或運(yùn)行時錯誤的結(jié)果。相反,當(dāng)你在驅(qū)動你的腳本的邏輯中犯了錯誤并且你沒有得到你期望的結(jié)果時,它們會發(fā)生。
看完上述內(nèi)容,你們掌握J(rèn)avaScript編程中會出現(xiàn)的錯誤類型有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
標(biāo)題名稱:JavaScript編程中會出現(xiàn)的錯誤類型有哪些
文章來源:http://aaarwkj.com/article8/igiiip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、ChatGPT、軟件開發(fā)、外貿(mào)建站、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)