1、計算機的錯誤有兩種:語法錯誤與邏輯錯誤。
1.1語法錯誤:
例:
var a =
3+4;
alert(a);
alter(a);
a++;
alert(a);
上例中alert被拼寫成了alter,顯示結果爲a未被定義,說明後面的代碼沒有執行,因爲輸出後遇到了語法錯誤,程序終止執行。
上例也進一步說明了解釋型語言的特點:翻譯一條,執行一條,遇到錯誤提前終止執行。
發現語法錯誤的方法:
(1)開發者工具的console(控制檯)窗口,能顯示錯誤及其說明
(2)try.......catch 捕獲異常
try { var a = 3 + 4; alert(a); alter(a); a++; alert(a); } catch (e) { alert(e); }
1.2邏輯錯誤:
/* 報名參軍的年齡限制:17-24週歲;*/ var age = Number(prompt("請問你的年齡是?")); if(17<=age<=24){ alert("歡迎你報名參軍!") }else{ alert("抱歉,你不能參軍!") }
結果顯示,無論輸入年齡96或3,都能報名參軍,結果顯然是錯誤的,但執行過程中沒有顯示任何語法錯誤。
調試的基本原理:程序的執行時自動的,而且速度非常快,無法瞭解中間執行過程。但是幾乎所有得開發工具都提供了調試的功能,可以去控制程序的執行節奏,從而可以讓開發者看清執行的過程。
1.3調試:
打開開發者工具在source打開代碼,然後在代碼左側(行號)點擊即可在該處設置斷點
(2) 單步執行(快捷鍵:F10):
控制節奏的目的:看清並瞭解程序的執行過程,而不僅僅是結果。
(1)查看程序執行的步驟,也就是上圖中的指示即將執行的代碼提示器,如果軌跡與預期不一致,說明上一步執行的代碼出錯了。
(2)查看變量、表達式的值,
因爲計算機程序的每一步執行的結果都是唯一的、可預期的,同時我們又可以通過上述手段控制程序的運行節奏,並查看程序執行的狀態(如軌跡、變量表達式的值),也就是可以看到實際執行的結果,那麼將實際結果和預期結果對比,如果出現不一致,說明剛剛執行的那一步出現了錯誤,即定位錯誤。
一旦定位錯誤,根據所學知識或經驗,應該就很容易分析出錯誤原因,從而找到解決方案。
就像我的老師所說:調試工具不僅僅是定位錯誤的工具,也是一個非常重要的學習工具,因爲調試工具可以讓我們直觀的看到程序的運行軌跡及運行狀態,有助於我們對於一些抽象指示的理解。