2013-11-03 56 views
2

大多數循環的例子,我在JavaScript中看到使用array.length屬性在for循環本身,就像這樣:效率調用array.length的在JavaScript

var numbers = [1,2,3,4,5]; 
for (var i = 0; i < numbers.length; i++) { 
    // do something 
} 

但是,有時我看到array.length財產被寫入變量,然後變量值在循環使用,而用:

var numbers = [1,2,3,4,5]; 
var len = numbers.length; 
for (var i = 0; i < len; i++) { 
    // do something 
} 

從C#背景的,我從來沒有擔心這一點。然而,在JavaScript是第二種方法更有效率,爲什麼?

+3

你可能想看看這個:http://jsperf.com/fastest-array-loops-in-javascript/30 – BYossarian

+0

謝謝,這是一個很好的鏈接。 – ninjaPixel

+0

注意,除了效率之外,如果數組在循環期間更改長度,會發生什麼情況。 – Stuart

回答

1

第二種效率更高,因爲它不需要對任何東西進行操作。首先,它只需要每次引用一個數據單元。