JavaScript常見錯(cuò)誤類型

學(xué)習(xí)網(wǎng)站:http://www.vuexx.com/
我們在做JavaScript開發(fā)的時(shí)候難免會(huì)遇到各種報(bào)錯(cuò),今天我們就來學(xué)習(xí)一下JavaScript中的常見錯(cuò)誤類型。

常見錯(cuò)誤類型

  • SyntaxError解析錯(cuò)誤
  • ReferenceError引用錯(cuò)誤
  • RangeError范圍錯(cuò)誤
  • TypeError類型錯(cuò)誤
  • URIError統(tǒng)一資源標(biāo)識(shí)符函數(shù)錯(cuò)誤
  • EvalError eval()函數(shù)執(zhí)行錯(cuò)誤
  • InternalError內(nèi)部錯(cuò)誤

SyntaxError解析錯(cuò)誤

代表嘗試解析語法上不合法的代碼的錯(cuò)誤

描述:這個(gè)報(bào)錯(cuò)是由于我們的語法規(guī)則書寫不正確造成的,比如變量命名不規(guī)范,函數(shù)書寫不正確等。

//變量不能以數(shù)字開頭
var 3344a = 100;
//函數(shù)缺少小括號(hào)
function fn {}

ReferenceError引用錯(cuò)誤

表明一個(gè)不存在的變量被引用

描述:當(dāng)你嘗試引用一個(gè)未被定義的變量時(shí),將會(huì)拋出一個(gè) ReferenceError

var a = 100;
//這定義的a,但是打印的是b,由于b沒有聲明和賦值,那么會(huì)提示ReferenceError引用錯(cuò)誤
console.log(b);//提示:b is not definded
function fn() {
      console.log("fn");
}
fn1();//定義的方法名是fn,調(diào)用fn1,也會(huì)提示ReferenceError引用錯(cuò)誤,fn1 is not definded

RangeError范圍錯(cuò)誤

當(dāng)一個(gè)值不在其所允許的范圍或者集合中

描述:當(dāng)試圖傳遞一個(gè)不合法的數(shù)字到數(shù)組的構(gòu)造函數(shù)時(shí),或者是傳遞一個(gè)number參數(shù)給一個(gè)范圍內(nèi)不包含該number的函數(shù)時(shí),都會(huì)引發(fā)RangeError

//這里傳遞一個(gè)不合法的負(fù)數(shù),當(dāng)做數(shù)組的長度,會(huì)報(bào)錯(cuò)RangeError
var arr = new Array(-2);

//number方法容易出現(xiàn)RangeError的有:
//toPrecision() 方法以指定的精度返回該數(shù)值對象的字符串表示
//toFixed() 方法使用定點(diǎn)表示法來格式化一個(gè)數(shù)
//toExponential() 方法以指數(shù)表示法返回該數(shù)值字符串表示形式

(5).toExponential(150);
//報(bào)錯(cuò)RangeError: toExponential() argument must be between 0 and 100

TypeError類型錯(cuò)誤

用來表示值的類型非預(yù)期類型時(shí)發(fā)生的錯(cuò)誤

描述:當(dāng)傳入函數(shù)的操作數(shù)或參數(shù)的類型并非操作符或函數(shù)所預(yù)期的類型時(shí),將拋出一個(gè) TypeError 類型錯(cuò)誤

var a = 100;
//把a(bǔ)當(dāng)做函數(shù)去調(diào)用,會(huì)報(bào)錯(cuò)Uncaught TypeError: a is not a function
a();

URIError統(tǒng)一資源標(biāo)識(shí)符函數(shù)錯(cuò)誤

用來表示以一種錯(cuò)誤的方式使用全局URI處理函數(shù)而產(chǎn)生的錯(cuò)誤

描述:當(dāng)向全局URI處理函數(shù)傳遞一個(gè)錯(cuò)誤的URI時(shí),一個(gè)URIError錯(cuò)誤會(huì)被拋出。
涉及的函數(shù)有:encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()

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

代表了一個(gè)關(guān)于evel函數(shù)的錯(cuò)誤.此異常不再會(huì)被JavaScript拋出,但是EvalError對象仍然保持兼容性.

描述:該錯(cuò)誤類型已經(jīng)在ES5中不使用了,只是為了保證與以前代碼兼容,才繼續(xù)保留。

InternalError內(nèi)部錯(cuò)誤

表示出現(xiàn)在JavaScript引擎內(nèi)部的錯(cuò)誤。 例如: "InternalError: too much recursion"(內(nèi)部錯(cuò)誤:遞歸過深)

描述:非標(biāo)準(zhǔn)特性,請盡量不要在開發(fā)環(huán)境中使用它!
學(xué)習(xí)網(wǎng)站:http://www.vuexx.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,564評論 0 13
  • ??由于 JavaScript 本身是動(dòng)態(tài)語言,而且多年來一直沒有固定的開發(fā)工具,因此人們普遍認(rèn)為它是一種最難于調(diào)...
    霜天曉閱讀 825評論 0 1
  • 注:本文最后更新時(shí)間:2017/03/06 前言:最近在重新翻看《你不知道的 JavaScript 》,在作用域一...
    卿可津閱讀 939評論 0 0
  • Error 實(shí)例對象 JavaScript 解析或運(yùn)行時(shí),一旦發(fā)生錯(cuò)誤,引擎就會(huì)拋出一個(gè)錯(cuò)誤對象。JavaScri...
    許先生__閱讀 305評論 0 1
  • 是不是寫字太少,表達(dá)能力就會(huì)退化,感覺現(xiàn)在自己寫的東西,連初中的水平都達(dá)不到。
    云上花閱讀 171評論 0 0

友情鏈接更多精彩內(nèi)容