首頁 > web前端 > js教程 > JavaScript中六種錯誤類型的總結

JavaScript中六種錯誤類型的總結

黄舟
發布: 2017-09-22 09:35:45
原創
1680 人瀏覽過

本文給大家詳細介紹了JavaScript中的六種錯誤類型,需要的朋友可以參考下

剛入前端坑,英語又不太好的同學,是不是還在為控制台的錯誤抓耳撓腮?今天就帶大家來看看JavaScript中常見的錯誤類型。

js中的控制台的報錯訊息主要分為兩大類,第一類是語法錯誤,這一類錯誤在預解析的過程中如果遇到,就會導致整個js檔案都無法執行。另一類錯誤統稱為異常,這一類的錯誤會導致在錯誤出現的那一行之後的程式碼無法執行,但在那一行之前的程式碼不會受到影響。

1. SyntaxError:語法錯誤


// 1. Syntax Error: 语法错误
// 1.1 变量名不符合规范
var 1       // Uncaught SyntaxError: Unexpected number
var 1a       // Uncaught SyntaxError: Invalid or unexpected token
// 1.2 给关键字赋值
function = 5     // Uncaught SyntaxError: Unexpected token =
登入後複製

2. Uncaught ReferenceError :引用錯誤

引用一個不存在的變數時發生的錯誤。將一個值指派給無法指派的對象,例如對函數的運行結果或函數賦值。


// 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是當一個只超出有效範圍時發生的錯誤。主要的有幾種情況,第一是數組長度為負數,第二是Number物件的方法參數超出範圍,以及函數堆疊超過最大值。


// 3.1 数组长度为负数
[].length = -5      // Uncaught RangeError: Invalid array length
// 3.2 Number对象的方法参数超出范围
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方法的作用是将数字四舍五入为指定小数位数的数字,参数是小数点后的位数,范围为0-20.
登入後複製

4. TypeError 類型錯誤

##變數或參數不是預期類型時發生的錯誤。例如使用new字串、布林值等原始型別和呼叫物件不存在的方法就會拋出這種錯誤,因為new指令的參數應該是一個建構子。


// 4.1 调用不存在的方法
123()        // Uncaught TypeError: 123 is not a function
var o = {}
o.run()        // Uncaught TypeError: o.run is not a function
// 4.2 new关键字后接基本类型
var p = new 456      // Uncaught TypeError: 456 is not a constructor
登入後複製

5. URIError,URL錯誤

主要是相關函數的參數不正確。


decodeURI("%")     // Uncaught URIError: URI malformed at decodeURI
登入後複製

URI相關參數不正確時拋出的錯誤,主要涉及encodeURI、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()六個函數。

6. EvalError eval()函數執行錯誤

在ES5以下的JavaScript中,當eval()函數沒有被正確執行時,會拋出evalError錯誤。

例如下面的情況:


var myEval = eval;
myEval("alert('call eval')");
登入後複製

要注意的是:ES5以上的JavaScript中已經不再拋出該錯誤,但仍然可以透過new關鍵字來自訂該類型的錯誤提示。

以上的6種衍生錯誤,連同原始的Error對象,都是建構子。開發者可以使用它們,認為產生錯誤物件的實例。


new Error([message[,fileName[,lineNumber]]]),
登入後複製
第一個參數表示錯誤提示訊息,第二個是檔案名,第三個是行號。

總結#

以上是JavaScript中六種錯誤類型的總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板