JavaScript編程中會出現(xiàn)的錯誤類型有哪些

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)容都不依賴于包含錯誤的代碼。

二、運行時錯誤(Runtime Errors)

運行時錯誤(也稱為異常)是在JavaScript執(zhí)行期間(編譯/解釋之后)發(fā)生的錯誤。

1、引用錯誤(ReferenceError)

ReferenceError:引用一個不存在的變量時發(fā)生的錯誤;將一個值分配給無法分配的對象,比如對函數(shù)的運行結(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ù)點后的位數(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)鍵字來自定義該類型的錯誤提示。

三、邏輯錯誤

邏輯錯誤可能是最難追蹤的錯誤類型。這些錯誤不是語法或運行時錯誤的結(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://bm7419.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)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化