例如以下:定義a數(shù)組幻捏,b為偽數(shù)組慕淡!
var a = [1,2,3,0,5,4];?
var b = document.getElementsByTagName('li');?
1? 基本型
for ( var i = 0; i < a.length; i++ ){?
//這樣的寫法是最主要的软免。但錯(cuò)誤的地方是數(shù)組長度不該每次都取吊洼。所以一般我們都會(huì)用另外一種寫法奸远!}?
2 通用型?
for ( var i = 0,l = a.length; i < l; i++ ){?
//這樣的寫法是最常見的磅氨。最好理解的尺栖,也是通用的,對于a,b這兩種類型的(偽)數(shù)組都能夠烦租。}?
3 優(yōu)化型?
for ( var i = a.length - 1; i >= 0 ; i-- ) {?
//這樣的寫法非常巧妙决瞳,倒序來遍歷,從而節(jié)省了一個(gè)暫時(shí)變量左权!對于a,b這兩種類型的(偽)數(shù)組都能夠皮胡。//google的compiler壓縮后就會(huì)對for循環(huán)做這樣的優(yōu)化!}?
4 特定型?
for ( var i = 0; b[i]; i++ ) {?
//這樣的寫法不是通用的赏迟,對于數(shù)組a就不行屡贺。但對于數(shù)組b這樣的dom元素的集合來說非常有用!}?
5 技巧型
?for ( var i = 0, elem; (elem = b[i]) != null; i++ ) {?
//這樣的寫法也是特定情況下使用的,當(dāng)數(shù)組的元素不等于某一個(gè)值得時(shí)候甩栈,這里是當(dāng)遇到null或undefined時(shí)停止循環(huán)泻仙,所以數(shù)組a也是能夠使用的!?
技巧:聲明條件的同一時(shí)候賦值量没。能夠降低一行賦值暫時(shí)變量的代碼玉转!}