真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

JavaScript編程中會(huì)出現(xiàn)的錯(cuò)誤類型有哪些?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

古浪ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

下面我們來(lái)看看在編譯是會(huì)發(fā)現(xiàn)的JavaScript錯(cuò)誤是什么?

一、語(yǔ)法錯(cuò)誤(Syntax Errors)

語(yǔ)法錯(cuò)誤,也稱為解析錯(cuò)誤,會(huì)發(fā)生在傳統(tǒng)編程語(yǔ)言的編譯和JavaScript的解析時(shí)。

例1,以下行導(dǎo)致語(yǔ)法錯(cuò)誤,因?yàn)樗鄙儆依ㄌ?hào)。

例2:

123consloe.log(123)   // 未捕獲的語(yǔ)法錯(cuò)誤:意外標(biāo)識(shí)符
console.123)          // 未捕獲的語(yǔ)法錯(cuò)誤: 出乎意料的數(shù)字

當(dāng)JavaScript中出現(xiàn)語(yǔ)法錯(cuò)誤時(shí),只有與語(yǔ)法錯(cuò)誤包含在同一線程中的代碼才會(huì)受到影響,而其他線程中的其余代碼將被執(zhí)行,假設(shè)它們中的任何內(nèi)容都不依賴于包含錯(cuò)誤的代碼。

二、運(yùn)行時(shí)錯(cuò)誤(Runtime Errors)

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

1、引用錯(cuò)誤(ReferenceError)

ReferenceError:引用一個(gè)不存在的變量時(shí)發(fā)生的錯(cuò)誤;將一個(gè)值分配給無(wú)法分配的對(duì)象,比如對(duì)函數(shù)的運(yùn)行結(jié)果或者函數(shù)賦值就會(huì)發(fā)生的錯(cuò)誤。

例如下面的情況:

//  引用了不存在的變量 
a()       // 未定義引用錯(cuò)誤:a 未定義
console.log(b)     // 未引用引用錯(cuò)誤:b未定義
//  給一個(gè)無(wú)法被賦值的對(duì)象賦值 
console.log("abc") = 1   // 未引用引用錯(cuò)誤:左側(cè)賦值無(wú)效

2、范圍錯(cuò)誤(RangeError)

RangeError:是一個(gè)在超出有效范圍時(shí)會(huì)發(fā)生的錯(cuò)誤。主要有以下幾種情況:

1)、當(dāng)數(shù)組長(zhǎng)度為負(fù)數(shù)時(shí),發(fā)生錯(cuò)誤;

2)、當(dāng)Number對(duì)象的方法參數(shù)超出范圍時(shí),發(fā)生錯(cuò)誤;

3)、當(dāng)函數(shù)堆棧超過(guò)最大值時(shí),發(fā)生錯(cuò)誤。

例如下面的情況:

// 數(shù)組長(zhǎng)度為負(fù)數(shù) 
[].length = -5      // 范圍錯(cuò)誤:無(wú)效的數(shù)組長(zhǎng)度
// Number對(duì)象的方法參數(shù)超出范圍 
var num = new Number(12.34) 
console.log(num.toFixed(-1))   // 范圍錯(cuò)誤: 在Number.toFixed中,toFixEd()的數(shù)字參數(shù)必須在0到20之間。
// 說(shuō)明: toFixed方法的作用是將數(shù)字四舍五入為指定小數(shù)位數(shù)的數(shù)字,參數(shù)是小數(shù)點(diǎn)后的位數(shù),范圍為0-20.

3、類型錯(cuò)誤( TypeError)

TypeError:變量或參數(shù)不是預(yù)期類型時(shí)發(fā)生的錯(cuò)誤。

例:在使用new字符串、布爾值等原始類型和調(diào)用對(duì)象不存在的方法就會(huì)拋出這種錯(cuò)誤,因?yàn)閚ew命令的參數(shù)應(yīng)該是一個(gè)構(gòu)造函數(shù)。

//  調(diào)用不存在的方法 
123()        // 類型錯(cuò)誤: 123不是一個(gè)函數(shù)
var o = {} o.run()    // 類型錯(cuò)誤: o.run 不是一個(gè)函數(shù)
// new關(guān)鍵字后接基本類型 
var p = new 456      // 類型錯(cuò)誤: 456 不是構(gòu)造函數(shù)

4、URIError:URL相關(guān)函數(shù)錯(cuò)誤使用

URIError:主要是URL相關(guān)函數(shù)的參數(shù)不正確。

例如下面的情況:

decodeURI("%1")     // URIError: 在解碼過(guò)程中變形了的URI

URI相關(guān)參數(shù)不正確時(shí)拋出的錯(cuò)誤,主要涉及以下六個(gè)函數(shù):

encodeURI、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()

5、EvalError:eval()函數(shù)執(zhí)行錯(cuò)誤

EvalError:在ES5以下的JavaScript中,當(dāng)eval()函數(shù)沒(méi)有被正確執(zhí)行時(shí),會(huì)拋出evalError錯(cuò)誤。

例如下面的情況:

var myEval = eval; myEval("alert('call eval')");

需要注意的是:ES5以上的JavaScript中已經(jīng)不再拋出該錯(cuò)誤,但依然可以通過(guò)new關(guān)鍵字來(lái)自定義該類型的錯(cuò)誤提示。

三、邏輯錯(cuò)誤

邏輯錯(cuò)誤可能是最難追蹤的錯(cuò)誤類型。這些錯(cuò)誤不是語(yǔ)法或運(yùn)行時(shí)錯(cuò)誤的結(jié)果。相反,當(dāng)你在驅(qū)動(dòng)你的腳本的邏輯中犯了錯(cuò)誤并且你沒(méi)有得到你期望的結(jié)果時(shí),它們會(huì)發(fā)生。

看完上述內(nèi)容,你們掌握J(rèn)avaScript編程中會(huì)出現(xiàn)的錯(cuò)誤類型有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


文章標(biāo)題:JavaScript編程中會(huì)出現(xiàn)的錯(cuò)誤類型有哪些
標(biāo)題鏈接:http://weahome.cn/article/igiiip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部