国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

JavaScript 中的錯誤對象類(lèi)型有哪些

發(fā)布時(shí)間:2021-07-06 14:08 來(lái)源:億速云 閱讀:0 作者:Leah 欄目: web開(kāi)發(fā)

這期內容當中小編將會(huì )給大家帶來(lái)有關(guān)JavaScript 中的錯誤對象類(lèi)型有哪些,文章內容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

屬性

Error 對象具有2個(gè)屬性:

(1) name ——設置或返回錯誤名稱(chēng)。具體來(lái)說(shuō),它返回錯誤所屬的構造函數的名稱(chēng)。

它有6個(gè)不同的值-EvalError,RangeError,ReferenceError,TypeError,SyntaxError,URIError。我們將在本文后面討論這些內容,這些所有錯誤類(lèi)型均繼承自Object->  Error-> RangeError。

(2) message-設置或返回錯誤消息

事例

1. 通用的錯誤

我們可以使用Error對象創(chuàng )建一個(gè)新的Error,然后使用throw關(guān)鍵字顯式拋出該錯誤。

2. 處理特定的錯誤類(lèi)型

我們還可以使用如下的instanceof關(guān)鍵字來(lái)處理特定的錯誤類(lèi)型。

3. 自定義錯誤類(lèi)型

我們還可以通過(guò)創(chuàng )建繼承Error對象的類(lèi)來(lái)定義自己的錯誤類(lèi)型。

瀏覽器兼容性

Error 的對象類(lèi)型

現在讓我們討論可用于處理不同錯誤的不同錯誤對象類(lèi)型。

1. EvalError

創(chuàng )建一個(gè)error實(shí)例,表示錯誤的原因:與 eval() 有關(guān)。

這里要注意的一點(diǎn)是,當前ECMAScript規范不支持它,并且運行時(shí)不會(huì )將其拋出。取而代之的是,我們可以使用SyntaxError錯誤。但是,它仍然可以與ECMAScript的早期版本向后兼容。

語(yǔ)法:

new EvalError([message[, fileName[, lineNumber]]])

事例


瀏覽器兼容性

2. RangeError

創(chuàng )建一個(gè)error實(shí)例,表示錯誤的原因:數值變量或參數超出其有效范圍。

new RangeError([message[, fileName[, lineNumber]]])

下面的情況會(huì )觸發(fā)該錯誤:

1)根據String.prototype.normalize(),我們傳遞了一個(gè)不允許的字符串值。

// Uncaught RangeError: The normalization form should be one of NFC, NFD, NFKC, NFKD String.prototype.normalize(“-1”)

2)使用Array構造函數創(chuàng )建非法長(cháng)度的數組

// RangeError: Invalid array length var arr = new Array(-1);

3)諸如  Number.prototype.toExponential(),Number.prototype.toFixed()或Number.prototype.toPrecision()之類(lèi)的數字方法會(huì )接收無(wú)效值。

事例

對于數值:

對于非數值:

瀏覽器兼容性:

3. ReferenceError

創(chuàng )建一個(gè)error實(shí)例,表示錯誤的原因:無(wú)效引用。

new ReferenceError([message[, fileName[, lineNumber]]])

事例:

ReferenceError被自動(dòng)觸發(fā)。

顯式拋出ReferenceError

瀏覽器兼容性

4. SyntaxError

創(chuàng )建一個(gè)error實(shí)例,表示錯誤的原因:eval()在解析代碼的過(guò)程中發(fā)生的語(yǔ)法錯誤。

換句話(huà)說(shuō),當 JS 引擎在解析代碼時(shí)遇到不符合語(yǔ)言語(yǔ)法的令牌或令牌順序時(shí),將拋出SyntaxError。

捕獲語(yǔ)法錯誤:

創(chuàng )建一個(gè)SyntaxError:

瀏覽器兼容性:

5. TypeError

創(chuàng )建一個(gè)error實(shí)例,表示錯誤的原因:變量或參數不屬于有效類(lèi)型。

new TypeError([message[, fileName[, lineNumber]]])

下面情況會(huì )引發(fā) TypeError:

  • 在傳遞和預期的函數的參數或操作數之間存在類(lèi)型不兼容。

  • 試圖更新無(wú)法更改的值。

  • 值使用不當。

例如:

捕獲TypeError:

創(chuàng )建 TypeError:

瀏覽器兼容性:

6. URIError

創(chuàng )建一個(gè)error實(shí)例,表示錯誤的原因:給 encodeURI()或 decodeURl()傳遞的參數無(wú)效。

如果未正確使用全局URI處理功能,則會(huì )發(fā)生這種情況。

簡(jiǎn)單來(lái)說(shuō),當我們將不正確的參數傳遞給encodeURIComponent()或decodeURIComponent()函數時(shí),就會(huì )引發(fā)這種情況。

new URIError([message[, fileName[, lineNumber]]])

encodeURIComponent()通過(guò)用表示字符的UTF-8編碼的一個(gè),兩個(gè),三個(gè)或四個(gè)轉義序列替換某些字符的每個(gè)實(shí)例來(lái)對URI進(jìn)行編碼。

// "https%3A%2F%2Fmedium.com%2F" encodeURIComponent('https://medium.com/');

decodeURIComponent()——對之前由encodeURIComponent創(chuàng )建的統一資源標識符(Uniform Resource  Identifier, URI)組件進(jìn)行解碼。

// https://medium.com/ decodeURIComponent("https%3A%2F%2Fmedium.com%2F")

捕捉URIError:

顯式拋出URIError:

瀏覽器兼容性:

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

亚洲人成网站999久久久综合| 亚洲国产欧美在线人成| 波多野结衣一区二区三区高清| 亚洲AV无码久久精品蜜桃播放| 激情综合亚洲色婷婷五月APP| 亚洲国产精品无码久久久秋霞2|