欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡(jiǎn)單聊聊Js中的常見(jiàn)錯(cuò)誤類型

 更新時(shí)間:2022年02月17日 12:39:05   作者:toney文  
bug是應(yīng)用程序的重要組成部分,編碼過(guò)程也是發(fā)現(xiàn)bug,然后解決bug的過(guò)程,下面這篇文章主要給大家介紹了關(guān)于Js中常見(jiàn)錯(cuò)誤類型的相關(guān)資料,需要的朋友可以參考下

前言

js在開發(fā)過(guò)程經(jīng)常會(huì)遇到各種各樣的報(bào)錯(cuò),那么你了解這些錯(cuò)誤產(chǎn)生的原因嗎?下面跟我一起認(rèn)識(shí)這幾種常見(jiàn)的錯(cuò)誤類型吧

JavaScript中的錯(cuò)誤類型

  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError

Error

Error是最基本的錯(cuò)誤類型,其他的錯(cuò)誤類型都繼承自該類型。因此,所有錯(cuò)誤的類型共享了一組相同的屬性。 這個(gè)類型的錯(cuò)誤很少見(jiàn)。一般使用開發(fā)人員自定義拋出的錯(cuò)誤。

EvalError

這個(gè)錯(cuò)誤會(huì)在使用eval()函數(shù)發(fā)生異常時(shí)候拋出。兩種情況會(huì)出錯(cuò):

new eval();
eval = foo;

上面兩個(gè)的意思結(jié)合就是沒(méi)有直接調(diào)用eval函數(shù),而是new或者是重新賦值 這個(gè)錯(cuò)誤基本上不會(huì)遇到,因?yàn)閑val函數(shù)本來(lái)用的就不多。不過(guò)需要注意的是,eval是一個(gè)關(guān)鍵字。

RangeError

這個(gè)錯(cuò)誤會(huì)在數(shù)值超出相應(yīng)范圍時(shí)觸發(fā)。比如使用new Array()的時(shí)候傳遞一個(gè)負(fù)數(shù)或者是超過(guò)數(shù)組最大長(zhǎng)度(4,294,967,295)的數(shù),比如Number.MAX_VALUE,Number.MIN_VALUE。注意遞歸爆炸也有這個(gè)錯(cuò)誤。

RangeError:范圍錯(cuò)誤

RangeError是當(dāng)一個(gè)只超出有效范圍時(shí)發(fā)生的錯(cuò)誤。主要的有幾種情況,第一是數(shù)組長(zhǎng)度為負(fù)數(shù),第二是Number對(duì)象的方法參數(shù)超出范圍,以及函數(shù)堆棧超過(guò)最大值。

// 3.RangeError:范圍錯(cuò)誤
// 3.1 數(shù)組長(zhǎng)度為負(fù)數(shù)
[].length = -5      // Uncaught RangeError: Invalid array length
// 3.2 Number對(duì)象的方法參數(shù)超出范圍
var num = new Number(12.34)
console.log(num.toFixed(-1))  
 // Uncaught RangeError: toFixed() digits argument must be between 0 and 20 at Number.toFixed
// 說(shuō)明: toFixed方法的作用是將數(shù)字四舍五入為指定小數(shù)位數(shù)的數(shù)字,參數(shù)是規(guī)定小數(shù)的位數(shù),是 0 ~ 20 之間的值,包括 0 和 20,有些實(shí)現(xiàn)可以支持更大的數(shù)值范圍。如果省略了該參數(shù),將用 0 代替。

ReferenceError

這個(gè)錯(cuò)誤一般就是出現(xiàn)在變量找不到的情況,比如:

var a = b;
Uncaught ReferenceError: b is not defined

這時(shí)候就需要檢查一下這個(gè)變量了

SyntaxError

當(dāng)Javascript語(yǔ)言解析代碼時(shí),Javascript引擎發(fā)現(xiàn)了不符合語(yǔ)法規(guī)范的tokens或token順序時(shí)拋出SyntaxError。

SyntaxError:語(yǔ)法錯(cuò)誤
// 1. Syntax Error: 語(yǔ)法錯(cuò)誤
// 1.1 變量名不符合規(guī)范
var 1       // Uncaught SyntaxError: Unexpected number
var 1a       // Uncaught SyntaxError: Invalid or unexpected token
// 1.2 給關(guān)鍵字賦值
function = 5     // Uncaught SyntaxError: Unexpected token =

然后也可能因?yàn)槭褂昧酥形姆?hào),少了括號(hào),這樣的錯(cuò)誤也是語(yǔ)法錯(cuò)誤

//Uncaught SyntaxError: Invalid or unexpected token

TypeError

這個(gè)錯(cuò)誤在JavaScript中是經(jīng)常遇到的,不管是初學(xué)者還是老手。在變量中保存著以外的類型時(shí),或者在訪問(wèn)不存在的方法時(shí)。都會(huì)導(dǎo)致這種錯(cuò)誤。但是歸根結(jié)底還是由于在執(zhí)行特定于類型的操作時(shí),變量的類型并不符合要求所致。比如:

var o = new 10;
a.style.widht = "10px";

關(guān)于設(shè)置樣式這個(gè)東西,新手會(huì)遇到很多,一般這都是由獲取不到元素導(dǎo)致的。

URIError

在使用encodeURI或者decodeURI因?yàn)閁RL格式不正確時(shí),就會(huì)導(dǎo)致URIError錯(cuò)誤。這種錯(cuò)誤也很少見(jiàn)。

總結(jié)

到此這篇關(guān)于Js中常見(jiàn)錯(cuò)誤類型的文章就介紹到這了,更多相關(guān)Js常見(jiàn)錯(cuò)誤類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用JavaScript實(shí)現(xiàn)彈出層效果的簡(jiǎn)單實(shí)例

    使用JavaScript實(shí)現(xiàn)彈出層效果的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇使用JavaScript實(shí)現(xiàn)彈出層效果的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • js 博客內(nèi)容進(jìn)度插件詳解

    js 博客內(nèi)容進(jìn)度插件詳解

    本篇文章主要介紹了博客內(nèi)容進(jìn)度插件的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • JavaScript實(shí)現(xiàn)表單驗(yàn)證功能

    JavaScript實(shí)現(xiàn)表單驗(yàn)證功能

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)表單驗(yàn)證功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • js如何給json對(duì)象添加、刪除、修改屬性

    js如何給json對(duì)象添加、刪除、修改屬性

    這篇文章主要介紹了js如何給json對(duì)象添加、刪除、修改屬性問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • JS+HTML5 Canvas實(shí)現(xiàn)簡(jiǎn)單的寫字板功能示例

    JS+HTML5 Canvas實(shí)現(xiàn)簡(jiǎn)單的寫字板功能示例

    這篇文章主要介紹了JS+HTML5 Canvas實(shí)現(xiàn)簡(jiǎn)單的寫字板功能,結(jié)合實(shí)例形式分析了js結(jié)合HTML5 canvas特性的圖形繪制相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • javascript中Math.random()使用詳解

    javascript中Math.random()使用詳解

    Math.random() 這個(gè)方法相信大家都知道,是用來(lái)生成隨機(jī)數(shù)的。不過(guò)一般的參考手冊(cè)時(shí)卻沒(méi)有說(shuō)明如何用這個(gè)方法來(lái)生成指定范圍內(nèi)的隨機(jī)數(shù)。這次我就來(lái)詳細(xì)的介紹一下Math.random(),以及如何用它來(lái)生成制定范圍內(nèi)的隨機(jī)數(shù)。
    2015-04-04
  • 在線編輯器的實(shí)現(xiàn)原理(兼容IE和FireFox)

    在線編輯器的實(shí)現(xiàn)原理(兼容IE和FireFox)

    在線編輯器的實(shí)現(xiàn)原理(兼容IE和FireFox)...
    2007-03-03
  • JavaScript從數(shù)組的indexOf()深入之Object的Property機(jī)制

    JavaScript從數(shù)組的indexOf()深入之Object的Property機(jī)制

    這篇文章主要介紹了JavaScript從數(shù)組的indexOf()深入——Object的Property機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • 關(guān)于JS中的undefined與null詳解

    關(guān)于JS中的undefined與null詳解

    在JavaScript中,undefined和null是兩個(gè)特殊的值,用于表示缺失或空值,文章通過(guò)代碼示例詳細(xì)介紹undefined與null作用及使用方法,感興趣的同學(xué)可以借鑒一下
    2023-05-05
  • JS代碼實(shí)現(xiàn)百度地圖 畫圓 刪除標(biāo)注

    JS代碼實(shí)現(xiàn)百度地圖 畫圓 刪除標(biāo)注

    這篇文章主要介紹了JS代碼實(shí)現(xiàn)百度地圖 畫圓 刪除標(biāo)注的相關(guān)資料,實(shí)現(xiàn)此功能的設(shè)計(jì)思路非常明確,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友參考下吧
    2016-10-10

最新評(píng)論