国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

高性能的 JavaScript -- 流程控制

Mike617 / 2138人閱讀

摘要:高性能的流程控制與語(yǔ)句第一種情況第二種情況我們來(lái)看上面兩個(gè)例子大多數(shù)的人都覺的語(yǔ)句在條件較少的時(shí)候要比清晰,如果條件較多那么就是使用更加清晰明了,事實(shí)上語(yǔ)句較語(yǔ)句相比較具有更高的效率。

高性能的 JavaScript -- 流程控制 If-ElseSwitch 語(yǔ)句
// 第一種情況
if (x === 0) {
  console.log(0);
} else if (x === 1) {
  console.log(1);
}

switch (x) {
  case 0:
    console.log(0);
    break;
  case 1:
    console.log(1);
    break;
}

// 第二種情況
if (x === 0) {
  console.log(0);
} else if (x === 1) {
  console.log(1);
} else if (x === 2) {
  console.log(2);
} else if (x === 3) {
  console.log(3);
} else if (x === 4) {
  console.log(4);
} else if (x === 5) {
  console.log(5);
} else if (x === 6) {
  console.log(6);
} else if (x === 7) {
  console.log(7);
} else if (x === 8) {
  console.log(8);
} else if (x === 9) {
  console.log(9);
}

switch (x) {
  case 0:
    console.log(0);
    break;
  case 1:
    console.log(1);
    break;
  case 2:
    console.log(2);
    break;
  case 3:
    console.log(3);
    break;
  case 4:
    console.log(4);
    break;
  case 5:
    console.log(5);
    break;
  case 6:
    console.log(6);
    break;
  case 7:
    console.log(7);
    break;
  case 8:
    console.log(8);
    break;
  case 9:
    console.log(9);
    break;
}

我們來(lái)看上面兩個(gè)例子大多數(shù)的人都覺的 if 語(yǔ)句在條件較少的時(shí)候要比 switch 清晰,如果條件較多那么就是使用
switch 更加清晰明了,事實(shí)上 switch 語(yǔ)句較 if 語(yǔ)句相比較具有更高的效率。當(dāng)然這種效率性能的提升只能在分支
條件較多較為復(fù)雜的時(shí)候體現(xiàn)出來(lái),這與我們的直覺一樣 條件較多的時(shí)候使用 switch 語(yǔ)句

優(yōu)化 If-Else 語(yǔ)句

另外一種減少條件判斷數(shù)量的方法是將 if-else 組織成一系列嵌套的 if-else 表達(dá)式。使用一個(gè)多帶帶的一長(zhǎng)
串的 if-else 通常導(dǎo)致運(yùn)行緩慢,因?yàn)槊總€(gè)條件體都要被計(jì)算。

if (x < 3) {
  if (x === 0) {}
  else if (x === 1) {}
  else if (x === 2) {}
} else if (x < 6) {
  if (x === 3) {}
  else if (x === 4) {}
  else if (x === 5) {}
} else if (x < 9) {
  if (x === 6) {}
  else if (x === 7) {}
  else if (x === 8) {}
}

在重寫的 if-else 表達(dá)式中,每次抵達(dá)正確分支時(shí)最多通過(guò)四個(gè)條件判斷。它使用二分搜索法將值域分成
了一系列區(qū)間,然后逐步縮小范圍。當(dāng)數(shù)值范圍分布在 0 到 9 時(shí),此代碼的平均運(yùn)行時(shí)間大約是前面那
個(gè)版的一半。此方法適用于需要測(cè)試大量數(shù)值的情況 (相對(duì)離散值來(lái)說(shuō) switch 語(yǔ)句更合適)。

表查法

有些情況下要避免使用 if-elseswitch。當(dāng)有大量離散值需要測(cè)試時(shí),if-elseswitch 都比使用查表法
要慢得多。在 JavaScript 中查表法可使用數(shù)組或者普通對(duì)象實(shí)現(xiàn),查表法訪問(wèn)數(shù)據(jù)比 if-else 或者 switch 更快,
特別當(dāng)條件體的數(shù)目很大時(shí)。

let map = [1, 2, 3, 4, 5, 6, 7, 8, 9];

console.log(map[x]);

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/82911.html

相關(guān)文章

  • 吹毛求疵追求優(yōu)雅性能JavaScript

    摘要:這樣優(yōu)化后我們最多進(jìn)行次判斷即可,大大提高了代碼的性能。表達(dá)式的值具有離散性, 個(gè)人博客,點(diǎn)擊查看目錄,喜歡可以關(guān)注一下. 1.從[]==![]為true來(lái)剖析JavaScript各種蛋疼的類型轉(zhuǎn)換 2.吹毛求疵的追求優(yōu)雅高性能JavaScript 李小龍說(shuō)過(guò):天下武功,無(wú)堅(jiān)不摧,唯快不破.(真的說(shuō)過(guò)嗎?)我想說(shuō)的是:世間網(wǎng)站,完美體驗(yàn),唯快不破.(這個(gè)我承認(rèn)我說(shuō)過(guò).) showImg...

    saucxs 評(píng)論0 收藏0
  • JavaScript核心語(yǔ)法——語(yǔ)句

    摘要:語(yǔ)句塊的結(jié)尾不需要分號(hào),語(yǔ)句塊中的行都有縮進(jìn)單并不是必須的。條件語(yǔ)句條件語(yǔ)句就是指通過(guò)判斷指定的計(jì)算結(jié)果,來(lái)決定執(zhí)行還是跳過(guò)指定的語(yǔ)句塊。語(yǔ)句,在語(yǔ)句的基礎(chǔ)上,允許提供多個(gè)條件判斷。語(yǔ)句是終端語(yǔ)句,用于循環(huán)語(yǔ)句或開關(guān)語(yǔ)句。 語(yǔ)句 語(yǔ)句的概念 語(yǔ)句其實(shí)就是JavaScript中的整句或命令,使用分號(hào)進(jìn)行分隔,可以編寫一句,也可以編寫多句。JavaScript中使用花括號(hào)({})表示一個(gè)語(yǔ)...

    seanlook 評(píng)論0 收藏0
  • Javascript Generator - 函數(shù)式編程 - Javascript核心

    摘要:中的的引入,極大程度上改變了程序員對(duì)迭代器的看法,并為解決提供了新方法。被稱為,也有些人把的返回值稱為一個(gè)。其中屬性包含實(shí)際返回的數(shù)值,屬性為布爾值,標(biāo)記迭代器是否完成迭代。 原文: http://pij.robinqu.me/JavaScript_Core/Functional_JavaScript/JavaScript_Generator.html 源代碼: htt...

    yearsj 評(píng)論0 收藏0
  • 個(gè)人常用JavaScript及React常用優(yōu)化總結(jié)

    摘要:插件性能優(yōu)化及個(gè)人常用優(yōu)化方法經(jīng)常會(huì)觸發(fā)視覺變化。作用域鏈指的是當(dāng)前作用于下可用變量的集合,它在各種主流瀏覽器中至少包含兩個(gè)部分局部變量的集合和全局變量的集合。在考慮優(yōu)化時(shí),數(shù)值和變量的性能差不多,并且速度顯著優(yōu)于對(duì)象屬性和數(shù)組元素。 JavaScript 插件性能優(yōu)化及個(gè)人react常用優(yōu)化方法 JavaScript 經(jīng)常會(huì)觸發(fā)視覺變化。有時(shí)是直接通過(guò)樣式操作,有時(shí)是會(huì)產(chǎn)生視覺變化...

    yuanxin 評(píng)論0 收藏0
  • 簡(jiǎn)單理解Javascript各種異步流程控制方法

    摘要:所以僅用于簡(jiǎn)化理解,快速入門,依然需要閱讀有深入研究的文章來(lái)加深對(duì)各種異步流程控制的方法的掌握。 原文地址:http://zodiacg.net/2015/08/javascript-async-control-flow/ 隨著ES6標(biāo)準(zhǔn)逐漸成熟,利用Promise和Generator解決回調(diào)地獄問(wèn)題的話題一直很熱門。但是對(duì)解決流程控制/回調(diào)地獄問(wèn)題的各種工具認(rèn)識(shí)仍然比較麻煩。最近兩天...

    makeFoxPlay 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<