“增強js程序代碼的健壯性”之我見大量示例代碼
更新時間:2007年05月13日 00:00:00 作者:
在書寫和使用js程序的過程中,我們經(jīng)常會遇到各種各樣的錯誤,對于一個依賴于瀏覽器的語言,我們很難完全去控制其在任何時刻都正確無誤的運行。但是我們?nèi)孕枳龀鲎约号θ≡鰪娢覀儠鴮懙膉s程序代碼的健壯性和安全性,盡可能減少錯誤的出現(xiàn)概率。
以下為本人在學(xué)習js過程總結(jié)的幾點關(guān)于增強js程序的健壯性的心得,如果您覺得對你有一點的價值,那我就達到自己的目的了,如果你覺得沒有什么意義,請您也不必扔磚頭,謝謝。
(1)對于必要的參數(shù)要判斷是否被正確的傳入。
代碼示例:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(2)根據(jù)傳入的參數(shù)類型不同做不同處理:
例如當我們要獲取一個html元素對象時,要判斷傳入的是一個id還是一個元素對象。
代碼示例:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(3)為參數(shù)設(shè)定默認值。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(4)檢查傳入的參數(shù)類型。
例如:
我們要求傳入的某個參數(shù)必須為數(shù)字。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
再比如可能我們需要通過參數(shù)設(shè)定一個寬度或高度值:
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(5)在JS的oo編程中,如果程序要獲取當前實例名,則必須對傳入實例名做判斷。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(6)在解析xml數(shù)據(jù)之前首先要檢查傳入xml數(shù)據(jù)類型(Dom?xml字符串?文件名)及其結(jié)構(gòu)的合法性。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(7)善用try...catch語句,很多時候的錯誤我們無法屏蔽,使用try...catch可以很容易的將這些錯誤過濾掉。
比如當我們在使用userData時,很多瀏覽器不支持,使用try...catch可以簡化我們的處理。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
歡迎大家多評論,提出更好更多的建議。
arg==undefined 改成 arg === undefined 可能會好些
var arg1=arg1||"default arg1";
這樣寫略有點問題
arg1是null 0 "" false都不行
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
三個等號表示類型也相等。JS在比較時不會自動轉(zhuǎn)換類型。
以下為本人在學(xué)習js過程總結(jié)的幾點關(guān)于增強js程序的健壯性的心得,如果您覺得對你有一點的價值,那我就達到自己的目的了,如果你覺得沒有什么意義,請您也不必扔磚頭,謝謝。
(1)對于必要的參數(shù)要判斷是否被正確的傳入。
代碼示例:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(2)根據(jù)傳入的參數(shù)類型不同做不同處理:
例如當我們要獲取一個html元素對象時,要判斷傳入的是一個id還是一個元素對象。
代碼示例:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(3)為參數(shù)設(shè)定默認值。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(4)檢查傳入的參數(shù)類型。
例如:
我們要求傳入的某個參數(shù)必須為數(shù)字。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
再比如可能我們需要通過參數(shù)設(shè)定一個寬度或高度值:
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(5)在JS的oo編程中,如果程序要獲取當前實例名,則必須對傳入實例名做判斷。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(6)在解析xml數(shù)據(jù)之前首先要檢查傳入xml數(shù)據(jù)類型(Dom?xml字符串?文件名)及其結(jié)構(gòu)的合法性。
示例代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
(7)善用try...catch語句,很多時候的錯誤我們無法屏蔽,使用try...catch可以很容易的將這些錯誤過濾掉。
比如當我們在使用userData時,很多瀏覽器不支持,使用try...catch可以簡化我們的處理。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
歡迎大家多評論,提出更好更多的建議。
arg==undefined 改成 arg === undefined 可能會好些
var arg1=arg1||"default arg1";
這樣寫略有點問題
arg1是null 0 "" false都不行
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
三個等號表示類型也相等。JS在比較時不會自動轉(zhuǎn)換類型。
相關(guān)文章
用JavaScript實現(xiàn)UrlEncode和UrlDecode的腳本代碼
用js自定義函數(shù)寫的實現(xiàn)url加密解密的實現(xiàn)代碼,需要的朋友可以參考下2008-07-07使用Javascript開發(fā)sliding-nav帶滑動條效果的導(dǎo)航插件
這篇文章主要介紹了使用Javascript開發(fā)sliding-nav帶滑動條效果的導(dǎo)航插件,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03html2canvas屬性和使用方法以及如何使用html2canvas將HTML內(nèi)容寫入Canvas生成圖片
為大家介紹一款JS截圖插件html2canvas.js, 它可以通過純JS對瀏覽器端經(jīng)行截屏,下面就為大家介紹一下html2canvas.js屬性和具體使用方法,并為大家提供了一個實例2020-01-01獲取JS中網(wǎng)頁各種高寬與位置的方法總結(jié)
本文詳細羅列了如何在javascript獲取網(wǎng)頁各種高寬及位置,內(nèi)容比較全面,有需要的可以參考一下。2016-07-07