JavaScript中的六種錯誤類型

剛?cè)肭岸丝泳福⒄Z又不太好的同學(xué)兼雄,是不是還在為控制臺的錯誤抓耳撓腮昌简?今天就帶大家看一看JavaScript中常見的錯誤類型占业。

js中的控制臺的報錯信息主要分為兩大類,第一類是語法錯誤江场,這一類錯誤在預(yù)解析的過程中如果遇到纺酸,就會導(dǎo)致整個js文件都無法執(zhí)行。另一類錯誤統(tǒng)稱為異常址否,這一類的錯誤會導(dǎo)致在錯誤出現(xiàn)的那一行之后的代碼無法執(zhí)行餐蔬,但在那一行之前的代碼不會受到影響碎紊。

1. SyntaxError:語法錯誤

// 1. Syntax Error: 語法錯誤
// 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 =  

2. Uncaught ReferenceError:引用錯誤

引用一個不存在的變量時發(fā)生的錯誤。將一個值分配給無法分配的對象樊诺,比如對函數(shù)的運(yùn)行結(jié)果或者函數(shù)賦值仗考。

// 2.1 引用了不存在的變量
a()                            // Uncaught ReferenceError: a is not defined
console.log(b)                 // Uncaught ReferenceError: b is not defined
// 2.2 給一個無法被賦值的對象賦值
console.log("abc") = 1         // Uncaught ReferenceError: Invalid left-hand side in assignment

3. RangeError:范圍錯誤

RangeError是當(dāng)一個只超出有效范圍時發(fā)生的錯誤。主要的有幾種情況词爬,第一是數(shù)組長度為負(fù)數(shù)秃嗜,第二是Number對象的方法參數(shù)超出范圍,以及函數(shù)堆棧超過最大值顿膨。

// 3.1 數(shù)組長度為負(fù)數(shù)
[].length = -5                        // Uncaught RangeError: Invalid array length
// 3.2 Number對象的方法參數(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
// 說明: toFixed方法的作用是將數(shù)字四舍五入為指定小數(shù)位數(shù)的數(shù)字,參數(shù)是小數(shù)點(diǎn)后的位數(shù),范圍為0-20.

4. TypeError類型錯誤

變量或參數(shù)不是預(yù)期類型時發(fā)生的錯誤锅锨。比如使用new字符串、布爾值等原始類型和調(diào)用對象不存在的方法就會拋出這種錯誤恋沃,因?yàn)閚ew命令的參數(shù)應(yīng)該是一個構(gòu)造函數(shù)必搞。

// 4.1 調(diào)用不存在的方法
123()                                // Uncaught TypeError: 123 is not a function
var o = {}
o.run()                              // Uncaught TypeError: o.run is not a function
// 4.2 new關(guān)鍵字后接基本類型
var p = new 456                      // Uncaught TypeError: 456 is not a constructor

5. URIError,URL錯誤

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

decodeURI("%")                   // Uncaught URIError: URI malformed at decodeURI

URI相關(guān)參數(shù)不正確時拋出的錯誤恕洲,主要涉及encodeURI、decodeURI()梅割、encodeURIComponent()霜第、decodeURIComponent()、escape()和unescape()六個函數(shù)户辞。

6. EvalError eval()函數(shù)執(zhí)行錯誤

在ES5以下的JavaScript中泌类,當(dāng)eval()函數(shù)沒有被正確執(zhí)行時,會拋出evalError錯誤底燎。
例如下面的情況:

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

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

以上的6種派生錯誤书蚪,連同原始的Error對象,都是構(gòu)造函數(shù)迅栅。開發(fā)者可以使用它們殊校,認(rèn)為生成錯誤對象的實(shí)例。

new Error([message[,fileName[,lineNumber]]])读存,

第一個參數(shù)表示錯誤提示信息为流,第二個是文件名,第三個是行號让簿。

以上敬察,感謝閱讀。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尔当,一起剝皮案震驚了整個濱河市莲祸,隨后出現(xiàn)的幾起案子蹂安,更是在濱河造成了極大的恐慌,老刑警劉巖锐帜,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件田盈,死亡現(xiàn)場離奇詭異,居然都是意外死亡缴阎,警方通過查閱死者的電腦和手機(jī)允瞧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛮拔,“玉大人述暂,你說我怎么就攤上這事〗牛” “怎么了畦韭?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長踱卵。 經(jīng)常有香客問我廊驼,道長,這世上最難降的妖魔是什么惋砂? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任妒挎,我火速辦了婚禮,結(jié)果婚禮上西饵,老公的妹妹穿的比我還像新娘酝掩。我一直安慰自己,他們只是感情好眷柔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布期虾。 她就那樣靜靜地躺著,像睡著了一般驯嘱。 火紅的嫁衣襯著肌膚如雪镶苞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天鞠评,我揣著相機(jī)與錄音茂蚓,去河邊找鬼。 笑死剃幌,一個胖子當(dāng)著我的面吹牛聋涨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播负乡,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼牍白,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了抖棘?” 一聲冷哼從身側(cè)響起茂腥,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狸涌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后础芍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杈抢,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年仑性,在試婚紗的時候發(fā)現(xiàn)自己被綠了惶楼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡诊杆,死狀恐怖歼捐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晨汹,我是刑警寧澤豹储,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站淘这,受9級特大地震影響剥扣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铝穷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一钠怯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧曙聂,春花似錦晦炊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至榆苞,卻和暖如春稳衬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坐漏。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工宋彼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仙畦。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像音婶,于是被迫代替她去往敵國和親慨畸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock閱讀 3,371評論 2 36
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,233評論 0 4
  • 發(fā)朋友圈的文章 不是一定要被看見 自己發(fā)了方便回放一下 做了備注就能回憶起當(dāng)時的思路 換了蘋果7 是因?yàn)樽詭鄼C(jī)太...
    飄buyuan閱讀 184評論 0 0
  • 我想苗條 可是餓了就控制不住的大吃 我想健康的減肥 在大自然中沐浴著陽光 在最光榮的勞動中強(qiáng)壯 我想的很美 做起來...
    娥兒閱讀 265評論 0 0
  • 做的金融商城在IE8下數(shù)據(jù)加載不出來檐什,在其他的瀏覽器均為正常。排查問題弱卡,發(fā)現(xiàn)是跨域訪問的問題乃正。所謂跨域訪問,就是頁...
    孫二柯閱讀 549評論 0 0