javascript錯誤處理與除錯
本文主要介紹javascript中一些常見的錯誤,以及一些用於除錯和處理錯誤的基礎,以幫助我們提高javascript程式碼的質量.
先說下javascript中常見的7種錯誤:
1.變數未定義
下面的語句將隱式的建立一個新的變數abc,並將值123賦給該變數:
<span style="font-size:24px;">abc = 123;</span>
嚴格的講,應該顯式的定義該變數:
<span style="font-size:24px;">var abc = 123;</span>
(實際上,是否使用var關鍵字與變數的作用域有關
但是,如果使用一個未定義的變數,將產生錯誤.例如,如果變數abc事先沒有顯式或隱式的定義,下面語句將產生錯誤:
<span style="font-size:24px;">alert(abc);</span>
2.大小寫敏感
大小寫錯誤是最常見的錯誤之一,但有時是很難發現的.例如,找出下面語句的三處錯誤:
<span style="font-size:24px;">var myName ="Paul"; If(myName=="paul") { alert(myName.toUppercase()); }<span style="font-family: 宋體; background-color: rgb(255, 255, 255);"> </span></span>
3.不匹配的大括號
4.不匹配的小括號
(上面兩個錯誤類似的,當語句過長時就會發生,當然這些也是很容易發現的.)
5.連線字串時缺少加號(+)
這種錯誤當語句短時發現很容易,但是長了就會非常麻煩,而且不同的瀏覽器報錯提醒是不一樣的.對於IE瀏覽器,提示"Error:Expected(缺少物件)",而對Firefox瀏覽器,則提示"Missing;before statement(在下列語句中缺少;號)".
6.賦值而不是相等
看下面的程式碼:
var myNumber = 99; if (myNumber=101) { alert("myNumber is 101"); } else { alert("myNumber is"+myNumber); }
看完上述程式碼,你是不是想else的字句中的alert()方法將會執行,並提示我們"myNumber is 99"?但事實並非如此.if語句判斷中錯誤的將兩個等號(==)寫成了一個(=),將比較運算子(==)寫成了賦值運算子(=).這是一個非常典型的錯誤.javascript和vb不同,對於vb,賦值操作和比較運算都是一個等號.這個錯誤不會產生錯誤資訊,從而非常容易被忽視.我們要記住的是,當程式的邏輯出現混亂和異常時,可以檢查下是不是這裡出了問題.
補充:
//相等和全等
alert(1 =='1'); //true,相等對的是值,型別不用比較
alert(1 ==='1'); //false,全等還需要比較型別
alert(1 ==true); //true,1會隱式轉換為布林值,true== true
alert(1 ===true); //false,1本身是數值,true本身是布林值
PS:在型別不相等的情況下,建議使用全等 ===
7.將方法誤認為屬性,或者將屬性誤認為方法
這裡常犯的就是在使用方法時忘記在方法名後帶一對圓括號,或者在使用屬性時,在屬性名後帶上多餘的圓括號.例如,下面的程式碼:
var nowDate = new Date;
alert(nowDate.getDay);
第一行中,使用了Date物件的建構函式,該建構函式式Date物件的一個簡單方法,但是,方法名後卻沒有一對圓括號;第二行中,呼叫了Date物件的getDay()方法,卻忘記一
對圓括號.
正確程式碼如下:
var nowDate = new Date();
alert(nowDate.getDay());
錯誤處理
1.try...catch語句
try...catch語句總是成對出現的
try-catch的意義
1.可以通過修改程式碼來排錯的,不需要使用try-catch
2.瀏覽器相容性問題,可以通過判斷瀏覽器或者判斷是否支援某個屬性或方法來判斷,不需要try-catch
比如,無法修改程式碼的情況下,可能會發生錯誤,這個時候用try-catch,網路中斷了
try {
alert(innerWidth); //W3C
}catch (e) {
alert(document.documentElement.clientWidth); //IE
}
PS:這樣的確能實現相容性問題,但邏輯上是不正確的.因為innerWidth不支援的瀏覽器,可能不一定是IE.
//丟擲錯誤,說明我們自己無法解決,就需要把錯誤報出
try {
new10;
} catch (e) {
if (einstanceof TypeError) {
thrownew TypeError('型別錯誤:例項化new的時候,可能產生了錯誤!');
} else{
//alert(e); //這種行為叫做處理錯誤,瀏覽器不抱錯了,因為處理掉了,遮蔽了錯誤顯示
thrownew Error('未知錯誤!');
}
}
new10; //瀏覽器自己丟擲了錯誤
addEvent(window, 'error',function () {
alert('程式發生錯誤了!');
});
指令碼偵錯程式
相關推薦
javascript錯誤處理與除錯
本文主要介紹javascript中一些常見的錯誤,以及一些用於除錯和處理錯誤的基礎,以幫助我們提高javascript程式碼的質量. 先說下javascript中常見的7種錯誤: 1.變數未定義 下面的語句將隱式的建立一個新的變數abc,並將值123賦給該變數
javascript錯誤處理與除錯(轉)
JavaScript 在錯誤處理除錯上一直是它的軟肋,如果指令碼出錯,給出的提示經常也讓人摸不著頭腦。 ECMAScript 第 3 版為了解決這個問題引入了 try...catch 和 throw 語句以及一些錯誤型別,讓開發人員更加適時的處理錯誤。 一.瀏覽器錯誤報告
《Javascript 高階程式設計(第三版)》筆記0x1E 錯誤處理與除錯
目錄 瀏覽器報告的錯誤 錯誤處理 try-catch語句 finally 子句 錯誤型別
【JavaScript】(4)——錯誤處理與除錯
背景:JavaScript在錯誤處理除錯上一直是它的軟肋,如果指令碼出錯,給出的提示經常也讓人摸不著頭腦。ECMAScript第3版為了解決這個問題引入了 try...catch和 throw語句以及一些錯誤型別,讓開發人員更加適時的處理錯誤。良好的錯誤處理機制可以及時的提
17.錯誤處理與除錯——JavaScript高階程式設計(筆記)
00.請讀者務必要記住,只要程式碼中包含finally子句,那麼無論try還是catch語句塊中的return語句都將被忽略。因此,在使用finally子句之前,一定要非常清楚你想讓程式碼怎樣。 01.錯誤型別(Error EvalError RangeError ReferenceError Synatx
關於JavaScript的學習(十七)——錯誤處理與除錯
第十七章 錯誤處理對於今天覆雜的Web應用程式開發而言至關重要。不能提前預測到可能發生的錯誤,不能提前採取回覆策略,可能導致較差的使用者體驗,最終引發使用者不滿。多數瀏覽器在預設情況下都不會向用戶報告錯誤,因此在開發和除錯期間需要啟動瀏覽器的錯誤報告功
JavaScript筆記:錯誤處理與除錯
1、瀏覽器報告的錯誤 IE IE 是唯一一個在瀏覽器的介面窗體(chrome)中顯示 JavaScript 錯誤資訊的瀏覽器。在發生 JavaScript 錯誤時,瀏覽器左下角會出現一個黃色的圖示,圖示旁邊則顯示著”Error on page”(頁面中有錯誤
JavaScript與FireFox的不解之緣——錯誤處理與除錯
作為IT界的一員出現Bug真是在正常不過。在學習JavaScript的時候難免自己因為各種原因而導致出錯,知道錯誤是什麼之後才能快準狠的修改之。在學習過程中都習慣使用火狐瀏覽器進行檢視效
JS錯誤處理與除錯。
try{ window.someNonexistentFunction(); }catch(error){ console.log(error.message); } 錯誤物件的message屬性。 自己在做了一個例子。 try{ (function(){
ASP.NET MVC編程——錯誤處理與日記
CP 引用 args context mvc4 strong gpo pub family ASP.NET MVC的錯誤處理應考慮到這幾個方面:模型綁定期間發生的錯誤,未能路由到指定操作,針對控制器的錯誤處理。使用配置文件可以幫助我們處理異常,但是不夠靈活和全面;使用Han
Python中的錯誤處理及除錯方法簡介
方法一: 最方便的方法是在互動執行時將可能存在錯誤的變數直接打印出來,通過檢視列印資訊來調整程式; 方法二:try機制 try: print('try...') r = 10 / 0 print('result:', r) except ZeroDivisionE
JavaScript錯誤處理權威指南
本文將分三部分分析 JavaScript 中的錯誤,首先我們將瞭解錯誤的一般情況,之後,我們將關注後端(Node.js + Express.js),最後,我們將重點看下如何處理 React.js 中的錯誤。選擇這些框架,是因為它們是目前最流行的,但是,你應該也能夠將這些新發現應用到其他框架中吧
javascript錯誤處理方式有哪些
今天給大家分享的這篇javascript教程不是很適合初學者觀看,對此不熟悉的朋友建議先看看基礎的知識點。本文主要講述java中的出錯處理,也會涉及到javascript異常處理使用的正反列,以及ajax的非同步處理。 Java的事件驅動機制讓Java更加豐富,瀏覽器
【WIN32之旅】WINDOWS錯誤處理與參考(四)
上一篇,我們說到了GetLastError()函式,可是它返回的是一個DWORD(雙字型)的錯誤程式碼,如果我們並不清楚FormatMessage()函式或者就只想快速簡單地得到錯誤
python-異常處理與除錯
一、常見的異常 出現錯誤的原因: •有的錯誤是程式編寫有問題造成的,比如本來應該輸出整數結果輸出了字串,這種錯誤我們通常稱之為 bug,bug 是必須修復的。 •有的錯誤是使用者輸入造成的,比如讓使用者輸入 email 地址,結果得到一個空字串,這種錯誤可
python異常處理與除錯,正則表示式
####異常處理與除錯#### 1.cacl包裡沒加if __name__ == "__main__":時,hell.py在呼叫mun中的方法時,會執行mun中的print,加了之後則沒有。 2.錯誤 •有的錯誤是程式編寫有問題造成的,比如本來應該輸出整數結果輸出了字元
JavaScript錯誤處理
JavaScript對錯誤的處理方式,下邊是不錯的處理方式: <html> <head> <mce:script type="text/javascript"><!-- onerror=handleErr; var txt="";
Javascript錯誤處理——try...catch
Javascript錯誤處理——try…catch 無論我們程式設計多麼精通,指令碼錯誤怎是難免。可能是我們的錯誤造成,或異常輸入,錯誤的伺服器端響應以及無數個其他原因。 通常,當傳送錯誤時指令碼會立刻停止,列印至控制檯。 但try.
異常處理與除錯
錯誤 • 有的錯誤是程式編寫有問題造成的,比如本來應該輸出整數結果輸出了字元 串,這種錯誤我們通常稱之為 bug,bug 是必須修復的。 • 有的錯誤是使用者輸入造成的,比如讓使用者輸入 email 地址,結果得到一個空字 符串,這種錯誤可以通過檢查使用者輸入來做
使用 Chrome 開發者工具進行 JavaScript 問題定位與除錯
引言 Google Chrome 是由 Goole 公司開發的一款網頁瀏覽器,自 2008 年 9 月第一個測試版本釋出以來,其市場佔有率逐步上升,至 2014 年 5 月,Chrome 已超越 Firefox 成為全球市場佔有率第二的瀏覽器。Chrome 的受歡迎程度與其優秀的效能與相容性密不可分,並