我的 JavaScript 指令碼中可能出現的三種錯誤是什麼?


在本教程中,我們將討論在 JavaScript 程式碼中可能遇到的三種錯誤。

錯誤是阻止程式執行的語句。在程式編譯期間,可能發生三種類型的錯誤。它們是語法錯誤、執行時錯誤和邏輯錯誤。

語法錯誤

語法錯誤是很常見的錯誤。不正確的語法會導致程式碼解釋期間出現解析問題。例如,在物件宣告中使用分號而不是冒號。語法錯誤僅影響相應的程式碼執行緒。其餘程式碼按原樣工作。

語法錯誤的根本原因是語法錯誤。不正確的 JSON 物件解析是在執行時從 ajax 響應中發生的語法錯誤。

當 JavaScript 引擎無法理解我們的程式碼時,就會發生語法錯誤。在執行程式碼之前,有三個步驟。

首先,程式碼標記化透過將程式碼分解成小的單元來進行。標記化階段對數字、關鍵字、文字和運算子進行分類。

下一個階段是解析。在這裡,它生成 AST 或程式碼結構的抽象表示。

發生語法錯誤時,程式碼將不會更改為機器程式碼。

我們可以快速追蹤語法錯誤,因為編譯器會用行號追蹤錯誤。

let jsonObj =
{
   name; 'Egan' //semicolon is the syntax error here
}

示例

在這個例子中,我們犯了分號錯位錯誤。我們在控制檯中得到帶有行號的錯誤跟蹤。因為我們有一個 onerror 處理程式,所以我們看到“未宣告的函式”的意外錯誤。此錯誤是由於語法錯誤引起的。

<html> <head> <script type = "text/javascript"> window.onerror = function(e) { syntErrOp.innerHTML = e; }; </script> <script type="text/javascript"> function getSyntErr() { var syntErrBtnWrap = document.getElementById("syntErrBtnWrap"); var syntErrOp = document.getElementById("syntErrOp"); let jsonObj = { name; 'Egan' } } </script> </head> <body> <div id="syntErrBtnWrap"> <p>Click the button to see the error</p> <button onclick="getSyntErr()">Click Me</button> </div> <div id="syntErrOp"></div> </body> </html>

執行時錯誤

執行時錯誤發生在編譯器解釋之後。執行時錯誤的另一個名稱是異常。例如,呼叫未宣告的函式。執行時錯誤會阻止程式執行。我們可以使用 try-catch 塊來處理這些異常。型別錯誤和範圍錯誤屬於執行時錯誤。

零除和訪問不可用記憶體是執行時錯誤的示例。

callUndefined();
//no function declaration

示例

在這個例子中,我們犯了“未宣告的函式”錯誤。我們在控制檯中得到帶有行號的錯誤跟蹤。因為我們有一個 onerror 處理程式,所以我們看到相同的“未宣告的函式”錯誤。

<html> <head> <script type = "text/javascript"> window.onerror = function(e) { runTimeErrOp.innerHTML = e; }; </script> <script type = "text/javascript"> function getRunTimeErr() { var runTimeErrBtnWrap = document.getElementById("runTimeErrBtnWrap"); var runTimeErrOp = document.getElementById("runTimeErrOp"); callUndeclare(); } </script> </head> <body> <h2>Runtime error in JavaScript</i></h2> <div id="runTimeErrBtnWrap"> <p>Click the button to see the error</p> <button onclick="getRunTimeErr()">Click Me</button> </div> <div id = "runTimeErrOp"> </div> </body> </html>

邏輯錯誤

開發人員需要使用智力和推理技能來追蹤邏輯錯誤。這些錯誤發生在程式碼流程中。例如,假設 x 大於 y。但是我們得到的輸出是 y 大於 x。所以這是程式碼邏輯中的一個錯誤。

使用無限迴圈是邏輯錯誤的一個例子。當開發人員對變數的使用感到困惑時,就會出現邏輯錯誤。開發人員必須注意程式的演算法以避免邏輯錯誤。

示例

在這個例子中,我們減去兩個數字而不是將它們相加,並將減法結果顯示為這兩個數字的和。減法而不是兩個數字的加法絕對是開發人員的邏輯錯誤。

<html> <head> <script type = "text/javascript"> function getlogicErr() { var logicErrBtnWrap = document.getElementById("logicErrBtnWrap"); var logicErrOp = document.getElementById("logicErrOp"); var num1 = 10, num2 = 5, sum; sum = num1 - num2; logicErrOp.innerHTML = num1 + " + " + num2 + " = " + sum; } </script> </head> <body> <h2>Logical error in JavaScript</i></h2> <div id = "logicErrBtnWrap"> <p>Click the button to see the error</p> <button onclick = "getlogicErr()">Click Me</button> </div> <div id = "logicErrOp"> </div> </body> </html>

在本教程中,我們發現了 JavaScript 中的三種錯誤。簡而言之,我們可以透過遵循良好的編碼實踐來防止各種錯誤。當然,也有一些例外情況。在這裡,我們無法避免出現錯誤。在這種情況下,我們可以假設錯誤的可能性,並使用錯誤處理程式來跟蹤它們。

更新於:2022年10月31日

378 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.