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

首頁 > 編程 > JavaScript > 正文

JavaScript中對循環語句的優化技巧深入探討

2019-11-20 14:46:43
字體:
來源:轉載
供稿:網友

循環是所有編程語言中最為重要的機制之一,幾乎任何擁有實際意義的計算機程序(排序、查詢等)都里不開循環。 而循環也正是程序優化中非常讓人頭疼的一環,我們往往需要不斷去優化程序的復雜度,卻因循環而糾結在時間復雜度和空間復雜度之間的抉擇。

在 javascript 中,有3種原生循環,for () {}, while () {}和do {} while (),其中最為常用的要數for () {}。

然而for正是 javascript 工程師們在優化程序時最容易忽略的一種循環。

我們先來回顧一下for的基本知識。
javascript 的for語法繼承自c語言,for循環的基本語法有兩種使用方法。

1. 循環數組

for循環的基本語法

復制代碼 代碼如下:

for ( /* 初始化 */2 /* 判斷條件 */2 /* 循環處理 */ ) {
  //... 邏輯代碼
}

我們以一段實例代碼來進行詳細說明。

復制代碼 代碼如下:

var array = [1, 2, 3, 4, 5];
var sum   = 0;

for (var i = 0, len = array.length; i < len; ++i) {
  sum += array[i];
}

console.log('The sum of the array/'s items is %d.', sum);
//=> The sum of the array's items is 15.

在這段代碼中,我們首先定義并初始化了一個用存儲待累加項的數組和一個總和整形變量。 接下來,我們開始進行循環。在該for循環的初始化代碼中,我們也定義并初始化了兩個變量: i(計數器)和len(循環數組長度的別名),當i小於len時,循環條件成立,執行邏輯代碼;每次邏輯代碼執行完畢以后,i自增1。

在循環的邏輯代碼中,我們把當前循環的數組項加到總和變量中。
這個循環用流程圖表示為如下:



從這個流程圖中我們不難發現,程序中真正的循環體不僅有我們的邏輯代碼,還包含了實現循環自身的執行判斷和循環處理。
這樣,我們的優化思路就清晰了,我們可以從四個方面進行優化。

1.循環體前的初始化代碼
2.循環體中的執行判斷條件
3.邏輯代碼
4.邏輯代碼后的處理代碼

ps: 其中第一點和第二點存在重要關系。


1.1 優化初始化代碼和執行判斷條件

我們先來看看一段大家都非常熟悉的代碼。

復制代碼 代碼如下:

// wrong!
for (var i = 02 i < list.length2 ++i) {
  //... 邏輯代碼
}

相信現在大部分寫著 javascript 的工程師依然使用著這段看似狠正常的循環方法,但為什 主站蜘蛛池模板: 鲁甸县| 余姚市| 旬邑县| 铁岭县| 灌阳县| 外汇| 龙海市| 南木林县| 寻甸| 泸定县| 双流县| 襄城县| 鄂托克旗| 卢龙县| 吴江市| 襄汾县| 堆龙德庆县| 怀化市| 东乌珠穆沁旗| 甘肃省| 巴彦淖尔市| 桂东县| 东乡族自治县| 洛阳市| 当雄县| 阿图什市| 随州市| 弋阳县| 庐江县| 九龙县| 慈溪市| 石柱| 四川省| 勐海县| 城固县| 鄂伦春自治旗| 美姑县| 内江市| 将乐县| 阿鲁科尔沁旗| 高要市|