欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript“盡快失敗”的原則實(shí)例詳解

 更新時(shí)間:2016年10月08日 10:10:45   作者:畫(huà)個(gè)女孩陪著我  
我第一次聽(tīng)說(shuō)編碼原則中有“盡快失敗”這一條時(shí),覺(jué)得很奇怪,為什么代碼要失???應(yīng)該成功才對(duì)呀。下面小編通過(guò)實(shí)例代碼給大家介紹js 盡快失敗的原則,一起看看吧

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

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

這是我的示例代碼:

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

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

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

相關(guān)文章

  • JavaScript可迭代對(duì)象詳細(xì)介紹

    JavaScript可迭代對(duì)象詳細(xì)介紹

    ES6中引入了迭代器與可迭代對(duì)象的概念,并且提供了對(duì)可迭代對(duì)象的相關(guān)支持,如for...of循環(huán),Map(iterable)構(gòu)造器,展開(kāi)語(yǔ)法...等。讓我們對(duì)數(shù)組外的數(shù)據(jù)集合的遍歷操作也得到極大簡(jiǎn)化
    2022-06-06
  • javascript與CSS復(fù)習(xí)(《精通javascript》)

    javascript與CSS復(fù)習(xí)(《精通javascript》)

    js和css結(jié)合來(lái)產(chǎn)生醒目的交互效果,我們可以快速的訪問(wèn)元素自身的樣式屬性
    2010-06-06
  • js判斷復(fù)選框是否選中及選中個(gè)數(shù)的實(shí)現(xiàn)代碼

    js判斷復(fù)選框是否選中及選中個(gè)數(shù)的實(shí)現(xiàn)代碼

    下面小編就為大家?guī)?lái)一篇js判斷復(fù)選框是否選中及選中個(gè)數(shù)的實(shí)現(xiàn)代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • JavaScript RegExp 對(duì)象用法詳解

    JavaScript RegExp 對(duì)象用法詳解

    這篇文章主要介紹了JavaScript RegExp 對(duì)象用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • JavaScript 判斷數(shù)據(jù)類(lèi)型的4種方法

    JavaScript 判斷數(shù)據(jù)類(lèi)型的4種方法

    這篇文章主要介紹了JavaScript 判斷數(shù)據(jù)類(lèi)型的4種方法,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下
    2020-09-09
  • JavaScript通過(guò)代碼調(diào)用Flash顯示的方法

    JavaScript通過(guò)代碼調(diào)用Flash顯示的方法

    這篇文章主要介紹了JavaScript通過(guò)代碼調(diào)用Flash顯示的方法,實(shí)例分析了JavaScript通過(guò)flash插件swfobject.js調(diào)用flash顯示的具體操作技巧,需要的朋友可以參考下
    2016-02-02
  • jQuery獲取隨機(jī)顏色的實(shí)例代碼

    jQuery獲取隨機(jī)顏色的實(shí)例代碼

    這篇文章主要介紹了jQuery獲取隨機(jī)顏色的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,感興趣的朋友跟隨腳本之家小編來(lái)學(xué)習(xí)吧
    2018-05-05
  • javascript ES6 Template String模板字符串使用方法

    javascript ES6 Template String模板字符串使用方法

    這篇文章主要介紹了javascript ES6 模板字符串(Template String)是增強(qiáng)版的字符串,用反引號(hào)(`)標(biāo)識(shí),它可以當(dāng)作普通字符串使用,也可以用來(lái)定義多行字符串,或者在字符串中嵌入變量,需要的朋友可以參考下
    2023-06-06
  • bootstrap按鈕插件(Button)使用方法解析

    bootstrap按鈕插件(Button)使用方法解析

    這篇文章主要為大家詳細(xì)解析了bootstrap按鈕插件Button使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • js 數(shù)據(jù)類(lèi)型判斷的方法

    js 數(shù)據(jù)類(lèi)型判斷的方法

    這篇文章主要介紹了js 數(shù)據(jù)類(lèi)型判斷的方法,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2020-12-12

最新評(píng)論