官术网_书友最值得收藏!

1.3.3 調(diào)試JavaScript程序

程序出錯類型分為語法錯誤和邏輯錯誤兩種。

1. 語法錯誤

語法錯誤是在程序開發(fā)中使用不符合某種語言規(guī)則的語句,從而產(chǎn)生的錯誤稱為語法錯誤。例如,錯誤地使用了JavaScript的關(guān)鍵字,錯誤地定義了變量名稱等,這時,當瀏覽器運行JavaScript程序時就會報錯。

例如,將上面程序中的第11行中的語句改寫成下述語句,即將第一個字符由小寫字母改成大寫字母。

 Alert("我要學JavaScript!"); 

保存該文件后再次在瀏覽器中運行,程序就會出錯。

運行本程序,將會彈出圖1-21所示的錯誤信息。

2. 邏輯錯誤

有些時候,程序中不存在語法錯誤,也沒有執(zhí)行非法操作的語句,可是程序運行的結(jié)果卻是不正確的,這種錯誤叫作邏輯錯誤。邏輯錯誤對于編譯器來說并不算錯誤,但是由于代碼中存在的邏輯問題,導(dǎo)致運行結(jié)果沒有得到期望的結(jié)果。邏輯錯誤在語法上是不存在錯誤的,但是從程序的功能上看是bug。它是最難調(diào)試和發(fā)現(xiàn)的bug。因為它們不會拋出任何錯誤信息。唯一能看到的就是程序的功能(或部分功能)沒有實現(xiàn)。

0

圖1-21 在IE瀏覽器中調(diào)試JavaScript

例如,某商城實現(xiàn)商品優(yōu)惠活動,如果用戶是商城的會員,那么商品打八五折,代碼如下。

 <script language="javascript"> 
 user="會員"; 
 if(user=="會員"){ 
  price=485*8.5;      //485是商品價格,8.5是打的八五折 
  alert("商品的會員價格是:"+price);   //輸出商品的會員價 
 } 
 </script> 

運行程序時,程序沒有彈出錯誤信息。但是當用戶為商城的會員時,商品價格乘以一個8.5,相當于,商品不但沒有打折扣,反而比原價貴了8.5倍,這一點就沒有符合要求,屬于邏輯錯誤,應(yīng)該乘以0.85才正確。

在實現(xiàn)動態(tài)的Web編程時,通常情況下,數(shù)據(jù)表中均是以8.5進行存儲,這時在程序中就應(yīng)該再除以一個10,這樣,就相當于原來的商品價格乘以一個0.85。正確的代碼為:

 price=485*8.5/10;     //485是商品價格,"8.5/10"是打的八五折 

對于邏輯錯誤而言,發(fā)現(xiàn)錯誤是容易的,但要查找出邏輯錯誤的原因卻是很困難。因此,在編寫程序的過程中,一定要注意使用語句或者函數(shù)的書寫完整性,否則將導(dǎo)致程序出錯。

主站蜘蛛池模板: 咸丰县| 尚志市| 方山县| 米易县| 东阳市| 克什克腾旗| 邢台市| 石楼县| 阿克苏市| 肇州县| 婺源县| 峨眉山市| 鄂托克前旗| 苍南县| 余干县| 阿尔山市| 东兰县| 清新县| 保山市| 社会| 临猗县| 韶关市| 太湖县| 景谷| 霸州市| 旌德县| 五原县| 蓬安县| 当阳市| 宾阳县| 伊金霍洛旗| 买车| 屏边| 壤塘县| 华安县| 芒康县| 西林县| 成武县| 仁怀市| 德州市| 泸州市|