JavaScript程式設計中會出現的錯誤類型有哪些?本篇文章就為大家介紹JavaScript程式設計中出現的幾種常見的錯誤類型。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。 【相關影片教學推薦:JavaScript教學】
在JavaScript程式設計中主要有三種類型的錯誤,分別為:語法錯誤,執行時錯誤,以及邏輯錯誤。
下面我們來看看在編譯會發現的JavaScript錯誤是什麼?
一、語法錯誤(Syntax Errors)
#語法錯誤,也稱為解析錯誤,會發生在傳統程式語言的編譯和JavaScript的解析時。
範例1,以下行導致語法錯誤,因為它缺少右括號。
<script type="text/javascript"> // window.print(; </script>
範例2:
123consloe.log(123) // 未捕获的语法错误:意外标识符 console.123) // 未捕获的语法错误: 出乎意料的数字
當JavaScript中出現語法錯誤時,只有與語法錯誤包含在同一執行緒中的程式碼才會受到影響,而其他執行緒中的其餘程式碼將被執行,假設它們中的任何內容都不依賴包含錯誤的程式碼。
二、執行階段錯誤(Runtime Errors)
#執行階段錯誤(也稱為例外)是在JavaScript執行期間(編譯/解釋之後)發生的錯誤。
1、引用錯誤(ReferenceError)
ReferenceError:引用一個不存在的變數時發生的錯誤;將一個值指派給無法指派的對象,例如對函數的運行結果或函數賦值就會發生的錯誤。
例如下面的情況:
// 引用了不存在的变量 a() // 未定义引用错误:a 未定义 console.log(b) // 未引用引用错误:b未定义 // 给一个无法被赋值的对象赋值 console.log("abc") = 1 // 未引用引用错误:左侧赋值无效
2、範圍錯誤(RangeError)
RangeError:是超出有效範圍時會發生的錯誤。主要有以下幾種情況:
1)、當陣列長度為負數時,發生錯誤;
2)、當Number物件的方法參數超出範圍時,發生錯誤;
3)、當函數堆疊超過最大值時,發生錯誤。
例如下面的情況:
// 数组长度为负数 [].length = -5 // 范围错误:无效的数组长度 // Number对象的方法参数超出范围 var num = new Number(12.34) console.log(num.toFixed(-1)) // 范围错误: 在Number.toFixed中,toFixEd()的数字参数必须在0到20之间。 // 说明: toFixed方法的作用是将数字四舍五入为指定小数位数的数字,参数是小数点后的位数,范围为0-20.
3、類型錯誤( TypeError)
TypeError:變數或參數不是預期類型時發生的錯誤。
例:在使用new字串、布林值等原始型別和呼叫物件不存在的方法就會拋出這種錯誤,因為new指令的參數應該是一個建構子。
// 调用不存在的方法 123() // 类型错误: 123不是一个函数 var o = {} o.run() // 类型错误: o.run 不是一个函数 // new关键字后接基本类型 var p = new 456 // 类型错误: 456 不是构造函数
4、URIError:URL相關函數錯誤使用
URIError:主要是URL相關函數的參數不正確。
例如下面的情況:
decodeURI("%1") // URIError: 在解码过程中变形了的URI
URI相關參數不正確時拋出的錯誤,主要涉及以下六個函數:
encodeURI、decodeURI()、encodeURIComponent( )、decodeURIComponent()、escape()和unescape()
#5、EvalError:eval()函數執行錯誤
##EvalError:在ES5以下的JavaScript中,當eval()函數沒有被正確執行時,會拋出evalError錯誤。 例如下面的情況:var myEval = eval; myEval("alert('call eval')");要注意的是:ES5以上的JavaScript中已經不再拋出該錯誤,但仍然可以透過new關鍵字來自訂該類型的錯誤提示。
三、邏輯錯誤
邏輯錯誤可能是最難追蹤的錯誤類型。這些錯誤不是語法或運行時錯誤的結果。相反,當你在驅動你的腳本的邏輯中犯了錯誤並且你沒有得到你期望的結果時,它們會發生。 總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。以上是JavaScript程式設計會出現的錯誤型別有哪些?錯誤類型介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!