一、錯誤與調試
1、錯誤的概念與處理
計算機程序的錯誤有兩種:語法錯誤和邏輯錯誤。
①語法錯誤:比如,alert拼寫錯誤,寫成了alter。
<script>
var a = 3 + 4;
alert(a);
alter(a);
a++;
alert(a);
</script>
上面的例子的運行結果只顯示了7,後面的結果沒有顯示,說明後面的代碼沒有運行。因爲在輸出7之後遇到了語法錯誤,程序終止運行。
通過開發者工具可以看到遇到的語法錯誤:Uncaught RefernaeError:later is not defined.
上面的例子也進一步說明了解釋性語言的特點:翻譯一條,執行一條,遇到錯誤提前終止。
語法錯誤的發現方法:
(1)開發者工具是console窗口能顯示錯誤及其說明。
(2)try······catch捕獲異常
②邏輯錯誤:程序在語法上沒有任何問題,但實際的執行結果和預期的結果有出入。
下面這個例子充分的說明了這個問題。
/*報名參軍的條件:17~24週歲*/
var age = Number(prompt("請問你的年齡是:"));
if(17 <= age <= 24){
alert("歡迎你報名參軍!");
}else{
alert("抱歉,年齡不夠,你不能參軍!");
}
程序運行之後,當你輸入96或者3時,都顯示 能報名參軍,這顯然是錯誤的,但執行過程中並沒有任何語法錯誤。這是爲什麼呢?
現在我們來解釋一下,調試的基本原理:程序執行時是自動的,而且速度非常快,無法
瞭解中間的執行過程。但是幾乎所有的開發者工具都提供了調試的功能,可以去控制程序的執行節奏,從而可以讓開發者看清楚執行的過程。
那麼怎樣控制執行節奏呢?
(1)設置斷點,
(1)打開開發者工具,點擊Sources頁打開源代碼,在代碼左側(行號邊上)單擊即可在該處設置斷點
(2)單步執行(step):每執行一步就會停下來,然後再繼續下一步。快捷鍵:F10。
控制節奏的目的是看清或者瞭解程序的執行過程,而不僅僅是結果。
2、調試的原理、工具和方法
利用上面的第二個例子,來調試。
(1)查看程序執行的軌跡,也就是上圖中的指示即將要執行的代碼指示器,如果軌跡與預期不一致,說明上一步執行的代碼出現邏輯錯誤了。
查看變量、表達式的值
a.在watch窗口添加要查看的變量或表達式,比方輸入age
此時可以看到變量age的值:
有的代碼太長,不方便書寫到watch中,這樣既就可以選中代碼,單擊右鍵,查看選項。
這樣在watch窗口就可以看到添加的變量或者表達式的值。
因爲計算機程序的每一步執行結果都是唯一的、可預期的,同時又可以通過上述手段控制程序的運行節奏並查看程序執行的狀態(如軌跡、變量表達式的值)。也就是可以看到實際的執行結果。那麼僵實際結果和預期結果對比出現不一致,說明剛剛執行的那一步出現錯誤,即定位錯誤。
一旦定位錯誤,根據所學知識或經驗,應該就很容易分析出原因,從而找到解決方案。
今天主要學習了JS中的錯誤與調試,希望裏面解決的問題,能幫到你。