色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

“增強(qiáng)js程序代碼的健壯性”之我見(jiàn)大量示例代碼

在書(shū)寫和使用js程序的過(guò)程中,我們經(jīng)常會(huì)遇到各種各樣的錯(cuò)誤,對(duì)于一個(gè)依賴于瀏覽器的語(yǔ)言,我們很難完全去控制其在任何時(shí)刻都正確無(wú)誤的運(yùn)行。但是我們?nèi)孕枳龀鲎约号θ≡鰪?qiáng)我們書(shū)寫的js程序代碼的健壯性和安全性,盡可能減少錯(cuò)誤的出現(xiàn)概率。
以下為本人在學(xué)習(xí)js過(guò)程總結(jié)的幾點(diǎn)關(guān)于增強(qiáng)js程序的健壯性的心得,如果您覺(jué)得對(duì)你有一點(diǎn)的價(jià)值,那我就達(dá)到自己的目的了,如果你覺(jué)得沒(méi)有什么意義,請(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í)行]
再比如可能我們需要通過(guò)參數(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語(yǔ)句,很多時(shí)候的錯(cuò)誤我們無(wú)法屏蔽,使用try...catch可以很容易的將這些錯(cuò)誤過(guò)濾掉。
比如當(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)問(wèn)題
arg1是null 0 "" false都不行

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
三個(gè)等號(hào)表示類型也相等。JS在比較時(shí)不會(huì)自動(dòng)轉(zhuǎn)換類型。

JavaScript技術(shù)“增強(qiáng)js程序代碼的健壯性”之我見(jiàn)大量示例代碼,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 靖远县| 丰原市| 山阴县| 页游| 怀安县| 广元市| 镇宁| 申扎县| 斗六市| 松滋市| 奉贤区| 错那县| 江山市| 祥云县| 邵阳县| 瓮安县| 邯郸县| 奉化市| 全南县| 新建县| 肇庆市| 广丰县| 嵊州市| 永年县| 礼泉县| 万载县| 塘沽区| 武山县| 章丘市| 南川市| 云浮市| 灵石县| 株洲市| 安西县| 运城市| 内乡县| 怀化市| 安化县| 尉犁县| 靖州| 布尔津县|