国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript“盡快失敗”的原則實例詳解

2019-11-20 08:48:43
字體:
供稿:網(wǎng)友

我第一次聽說編碼原則中有“盡快失敗”這一條時,覺得很奇怪,為什么代碼要失???應(yīng)該成功才對呀。但事實上,當(dāng)代碼在遇到錯誤的時候應(yīng)該盡快的終止。為了檢測各種狀態(tài),我們需要頻繁的創(chuàng)建if語句與條件分支,而這些條件檢測的結(jié)果不是成功就是失敗(true&&false)。之所以會有這么多的條件檢測語句,是因為如果不在構(gòu)建過程中植入這些監(jiān)測點(checkpoint),那么瀏覽器內(nèi)核會執(zhí)行很多無用的代碼,并占用許多寶貴的CPU性能和處理時間,拖慢網(wǎng)站加載速度。

根據(jù)那些判斷結(jié)果為false的檢測語句塊放置位置的不同,有些情況下,一旦發(fā)生錯誤就迅速中止,而另外一些情況下則會在執(zhí)行了很長一段時間的無用代碼后才終止。如果我們在遍歷數(shù)組之前先檢測其長度,或是在處理DOM時先看看有沒有我們需要的class屬性,那么就可以在不滿足條件時立刻中止代碼的執(zhí)行。因為遍歷數(shù)組信息與解析DOM都是相當(dāng)耗時的工作,所以最好是在執(zhí)行這些任務(wù)之前先檢測一下,在滿足于執(zhí)行條件時及早終止。正是基于上述原因,所以我才要提倡那種“盡快失敗”的代碼。

這是我的示例代碼:

//創(chuàng)建在遇到錯誤時盡快終止的代碼(function Salad(totalSlices,peopleCount){ //我要創(chuàng)建一個沙拉函數(shù),用來返回派對需要的總沙拉數(shù)量"use strict";var fairness = totalSlices * peopleCount;return fairness;})();(function () {"use strict";var body = document.getElementsByTagName("body")[0],//我在此閉包函數(shù)中建立了一些變量,并將其傳入salad函數(shù)以供計算partyStarter = "starlen",peopleCount = 18,Salad = 6,sliceCount = Salad * 3;if(peopleCount > 0 && Salad >0){//先檢測一下我們的派對有沒有人或沙拉,避免js消耗不必要的計算性能body.innerHTML += " '<p>'"+ partyStarter +","+ Salad(peopleCount,Salad) +" '</p>' "} else {body.innerHTML += "<p>參加聚會的人數(shù)或沙拉果盤不足!</p>"}})();

在輸出某些變量信息之前,我們首先檢查確保這些變量信息是否保存于內(nèi)存之中或者某些數(shù)組內(nèi)的變量是否大于0,從而回避那些不需要執(zhí)行那些計算代碼了。這是在日常的開發(fā)工作中基礎(chǔ)且重要的易引發(fā)性能的問題,所以要重視。

以上所述是小編給大家介紹的JavaScript“盡快失敗”的原則實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 西充县| 隆尧县| 班玛县| 平和县| 黑山县| 阳西县| 遂平县| 文化| 津市市| 岱山县| 大宁县| 蒲江县| 夏邑县| 佛坪县| 娄底市| 卢湾区| 修文县| 冀州市| 中超| 米脂县| 扶余县| 陈巴尔虎旗| 宝坻区| 温宿县| 六枝特区| 大荔县| 深圳市| 景泰县| 疏勒县| 江西省| 金华市| 楚雄市| 长宁县| 施甸县| 宁德市| 常州市| 奉新县| 盘山县| 巨鹿县| 磐石市| 甘孜县|