“增強(qiáng)js程序代碼的健壯性”之我見大量示例代碼
更新時(shí)間:2007年05月13日 00:00:00 作者:
在書寫和使用js程序的過程中,我們經(jīng)常會(huì)遇到各種各樣的錯(cuò)誤,對(duì)于一個(gè)依賴于瀏覽器的語言,我們很難完全去控制其在任何時(shí)刻都正確無誤的運(yùn)行。但是我們?nèi)孕枳龀鲎约号θ≡鰪?qiáng)我們書寫的js程序代碼的健壯性和安全性,盡可能減少錯(cuò)誤的出現(xiàn)概率。
以下為本人在學(xué)習(xí)js過程總結(jié)的幾點(diǎn)關(guān)于增強(qiáng)js程序的健壯性的心得,如果您覺得對(duì)你有一點(diǎn)的價(jià)值,那我就達(dá)到自己的目的了,如果你覺得沒有什么意義,請(qǐng)您也不必扔磚頭,謝謝。
(1)對(duì)于必要的參數(shù)要判斷是否被正確的傳入。
代碼示例:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(2)根據(jù)傳入的參數(shù)類型不同做不同處理:
例如當(dāng)我們要獲取一個(gè)html元素對(duì)象時(shí),要判斷傳入的是一個(gè)id還是一個(gè)元素對(duì)象。
代碼示例:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(3)為參數(shù)設(shè)定默認(rèn)值。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(4)檢查傳入的參數(shù)類型。
例如:
我們要求傳入的某個(gè)參數(shù)必須為數(shù)字。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
再比如可能我們需要通過參數(shù)設(shè)定一個(gè)寬度或高度值:
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(5)在JS的oo編程中,如果程序要獲取當(dāng)前實(shí)例名,則必須對(duì)傳入實(shí)例名做判斷。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(6)在解析xml數(shù)據(jù)之前首先要檢查傳入xml數(shù)據(jù)類型(Dom?xml字符串?文件名)及其結(jié)構(gòu)的合法性。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(7)善用try...catch語句,很多時(shí)候的錯(cuò)誤我們無法屏蔽,使用try...catch可以很容易的將這些錯(cuò)誤過濾掉。
比如當(dāng)我們?cè)谑褂胾serData時(shí),很多瀏覽器不支持,使用try...catch可以簡(jiǎn)化我們的處理。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
歡迎大家多評(píng)論,提出更好更多的建議。
arg==undefined 改成 arg === undefined 可能會(huì)好些
var arg1=arg1||"default arg1";
這樣寫略有點(diǎn)問題
arg1是null 0 "" false都不行
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
三個(gè)等號(hào)表示類型也相等。JS在比較時(shí)不會(huì)自動(dòng)轉(zhuǎn)換類型。
以下為本人在學(xué)習(xí)js過程總結(jié)的幾點(diǎn)關(guān)于增強(qiáng)js程序的健壯性的心得,如果您覺得對(duì)你有一點(diǎn)的價(jià)值,那我就達(dá)到自己的目的了,如果你覺得沒有什么意義,請(qǐng)您也不必扔磚頭,謝謝。
(1)對(duì)于必要的參數(shù)要判斷是否被正確的傳入。
代碼示例:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(2)根據(jù)傳入的參數(shù)類型不同做不同處理:
例如當(dāng)我們要獲取一個(gè)html元素對(duì)象時(shí),要判斷傳入的是一個(gè)id還是一個(gè)元素對(duì)象。
代碼示例:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(3)為參數(shù)設(shè)定默認(rèn)值。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(4)檢查傳入的參數(shù)類型。
例如:
我們要求傳入的某個(gè)參數(shù)必須為數(shù)字。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
再比如可能我們需要通過參數(shù)設(shè)定一個(gè)寬度或高度值:
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(5)在JS的oo編程中,如果程序要獲取當(dāng)前實(shí)例名,則必須對(duì)傳入實(shí)例名做判斷。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(6)在解析xml數(shù)據(jù)之前首先要檢查傳入xml數(shù)據(jù)類型(Dom?xml字符串?文件名)及其結(jié)構(gòu)的合法性。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(7)善用try...catch語句,很多時(shí)候的錯(cuò)誤我們無法屏蔽,使用try...catch可以很容易的將這些錯(cuò)誤過濾掉。
比如當(dāng)我們?cè)谑褂胾serData時(shí),很多瀏覽器不支持,使用try...catch可以簡(jiǎn)化我們的處理。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
歡迎大家多評(píng)論,提出更好更多的建議。
arg==undefined 改成 arg === undefined 可能會(huì)好些
var arg1=arg1||"default arg1";
這樣寫略有點(diǎn)問題
arg1是null 0 "" false都不行
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
三個(gè)等號(hào)表示類型也相等。JS在比較時(shí)不會(huì)自動(dòng)轉(zhuǎn)換類型。
相關(guān)文章
js 判斷各種數(shù)據(jù)類型的簡(jiǎn)單方法(推薦)
下面小編就為大家?guī)硪黄猨s 判斷各種數(shù)據(jù)類型的簡(jiǎn)單方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08
自定義函數(shù)實(shí)現(xiàn)IE7與IE8不兼容js中trim函數(shù)的問題
這篇文章主要介紹了自定義函數(shù)實(shí)現(xiàn)IE7與IE8不兼容js中trim函數(shù)的方法,涉及trim函數(shù)的重寫與正則匹配的技巧,需要的朋友可以參考下2015-02-02
JS字符串與二進(jìn)制的相互轉(zhuǎn)化實(shí)例代碼詳解
這篇文章主要介紹了JS字符串與二進(jìn)制的相互轉(zhuǎn)化 ,在文中給大家提到了Js之字符串和字節(jié)碼之間的相互轉(zhuǎn)換,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
使用JavaScript實(shí)現(xiàn)alert的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了js實(shí)現(xiàn)alert的方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-07-07
JS實(shí)現(xiàn)的簡(jiǎn)單tab切換功能完整示例
這篇文章主要介紹了JS實(shí)現(xiàn)的簡(jiǎn)單tab切換功能,結(jié)合完整實(shí)例形式分析了javascript基于事件響應(yīng)實(shí)現(xiàn)頁面元素屬性動(dòng)態(tài)變換相關(guān)操作技巧,需要的朋友可以參考下2019-06-06
Echarts如何自定義label標(biāo)簽的樣式(formatter,rich,添加圖標(biāo)等操作)
通常情況下,echarts中對(duì)于圖像的設(shè)置是統(tǒng)一的,下面這篇文章主要給大家介紹了關(guān)于Echarts如何自定義label標(biāo)簽的樣式的相關(guān)資料,包括formatter,rich,添加圖標(biāo)等操作,需要的朋友可以參考下2023-02-02
JavaScript處理XML DOM、XPath和XSLT方法詳解
這篇文章介紹了JavaScript處理XML DOM、XPath和XSLT的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05

