學(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/