js基石系列學(xué)習(xí)之錯(cuò)誤類(lèi)型
js系列大綱
在使用 JavaScript 時(shí),我們可能會(huì)遇到各種各樣的錯(cuò)誤,那你知道 JavaScript 常見(jiàn)的錯(cuò)誤類(lèi)型有哪些嗎?今天就來(lái)看看 JavaScript 中常見(jiàn)的錯(cuò)誤類(lèi)型。
1. SyntaxError
SyntaxError 表示語(yǔ)法錯(cuò)誤。在遇到不符合語(yǔ)言規(guī)范的代碼時(shí)拋出一個(gè)錯(cuò)誤。
function sammy(animal) { if(animal == 'shark'){ return `I'm cool`; } else { return `You're cool`; } } sammy('shark'; // output Uncaught SyntaxError: missing ) after argument list
例如,當(dāng)您在編寫(xiě)一個(gè)函數(shù)時(shí)忘記了括號(hào) ,)
來(lái)括起您的代碼,您將收到一個(gè)SyntaxError
錯(cuò)誤
function sammy(animal) { let animal = 'shark'; } // output Uncaught SyntaxError: Identifier 'animal' has already been declared
當(dāng)函數(shù)參數(shù)和函數(shù)體內(nèi)使用相同的變量名時(shí),您也可能會(huì)遇到此錯(cuò)誤。
2. TypeError
TypeError 表示類(lèi)型錯(cuò)誤。當(dāng)您使用不打算以特定方式使用的東西時(shí),就會(huì)發(fā)生類(lèi)型錯(cuò)誤。例如,用螺絲刀敲釘子,而不是用錘子。
let a = 1 console.log(a()) //output Uncaught TypeError: a is not a function
這a是一個(gè)用值初始化的變量。您遇到了一個(gè)錯(cuò)誤,因?yàn)槟噲D調(diào)用具有變量名稱(chēng)的函數(shù)。變量不能作為函數(shù)調(diào)用。函數(shù)和變量的工作方式不同。所以在這種情況下,你得到了一個(gè)類(lèi)型錯(cuò)誤。您使用的let變量與其類(lèi)型不同。
這給了我們一個(gè)類(lèi)型錯(cuò)誤。
const a = 1 a = 2 // you reassign a const type variable again //output TypeError: Assignment to constant variable.
在這里,我們將const
類(lèi)型變量重新分配a
給一個(gè)新值。但是你不能像這樣改變 const 變量,所以在這種情況下你會(huì)得到一個(gè)類(lèi)型錯(cuò)誤
3. ReferenceError
ReferenceError 表示引用錯(cuò)誤。當(dāng)找不到變量的引用、在變量作用域范圍之外使用變量、使用未聲明的變量時(shí)、在暫時(shí)性死區(qū)期間使用變量時(shí)都會(huì)拋出此錯(cuò)誤。
let a = 1 console.log(b) // undefined variable used //output Uncaught ReferenceError: b is not defined
這里,a
是一個(gè)用值初始化的變量。我們遇到了一個(gè)錯(cuò)誤,因?yàn)槲覀冊(cè)噲D控制臺(tái)記錄b
不存在的變量。我們還沒(méi)有聲明任何這樣的變量,所以我們?cè)谶@里得到了一個(gè)引用錯(cuò)誤。
if(true){ let a = 1 } console.log(a) //output ReferenceError: a is not defined
在這個(gè)例子中,我們?cè)噲D訪問(wèn)其塊外的a
類(lèi)型變量let
。解釋器無(wú)法在塊外找到它。這給了我們一個(gè)錯(cuò)誤。
4. RangeError
RangeError 表示范圍錯(cuò)誤。將變量設(shè)置在其限定的范圍之外、將值傳遞給超出范圍的方法、調(diào)用一個(gè)不會(huì)終止的遞歸函數(shù)時(shí)就會(huì)拋出此錯(cuò)誤。
5. URIError
URIError 表示 URI錯(cuò)誤。當(dāng) URI 的編碼和解碼出現(xiàn)問(wèn)題時(shí),會(huì)拋出 URIError。JavaScript 中的 URI 操作函數(shù)包括:decodeURI
、decodeURIComponent
等。如果使用了錯(cuò)誤的參數(shù)(無(wú)效字符),就會(huì)拋出 URIError。
以上就是js基石系列學(xué)習(xí)之錯(cuò)誤類(lèi)型的詳細(xì)內(nèi)容,更多關(guān)于js基石錯(cuò)誤類(lèi)型的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺談javascript:兩種注釋,聲明變量,定義函數(shù)
下面小編就為大家?guī)?lái)一篇淺談javascript:兩種注釋,聲明變量,定義函數(shù)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09javascript學(xué)習(xí)筆記(二) js一些基本概念
javascript學(xué)習(xí)筆記之js一些基本概念,學(xué)習(xí)js的朋友可以參考下2012-06-06slice函數(shù)的用法 之不錯(cuò)的應(yīng)用
slice函數(shù)的用法 之不錯(cuò)的應(yīng)用...2006-12-12Javascript動(dòng)態(tài)引用CSS文件的2種方法介紹
這篇文章主要介紹了Javascript動(dòng)態(tài)加載CSS文件的2種方法,經(jīng)常使用和非常實(shí)用的方法,需要的朋友可以參考下2014-06-06為JS擴(kuò)展Array.prototype.indexOf引發(fā)的問(wèn)題及解決辦法
這篇文章主要介紹了為JS擴(kuò)展Array.prototype.indexOf引發(fā)的問(wèn)題及解決辦法,需要的朋友可以參考下2015-01-01Javascript基礎(chǔ)教程之break和continue語(yǔ)句
文章通過(guò)示例向我們展示了javascript中的break和continue語(yǔ)句,兩個(gè)對(duì)比起來(lái),非常明了,需要的朋友可以參考下2015-01-01