首先搞懂執行的順序:
對,執行順序就是這樣的。
for循環的作用:
1、在編寫代碼時,你常常希望反復執行同一段代碼。
2、遍歷數組,可以用forEach();對於DOM對象(nodelist)的話,比如通過document.getElementsByTagName('li')生成的dom對象,需要這樣使用:
<script> var item = document.getElementsByTagName('li'); new Array().forEach.call(item,function(li,index){ li.onclick = function(){ console.log(index); } }) </script>
或者是這樣也
var item = document.getElementsByTagName('li'); [].forEach.call(item,function(li,index){ li.onclick = function(){ console.log(index); } })
也可以是這樣:
var item = document.getElementsByTagName('li'); Array.prototype.forEach.call(item,function(li,index){ li.onclick = function(){ console.log(index); } })
現在來說說for循環的原理吧:
for (變量 = 開始值;變量 <= 結束值;變量 = 變量 + 步進值) {需執行的代碼 }
變量賦值給了需要執行的代碼,其實此時如果for不在函數中的話,i是全局變量。
比如寫這樣一段代碼:
var btn = document.getElementsByTagName('li'); for(var i = 0;i<2;i++){ (function(j){ btn[j].onclick = function(){ alert(j); }; })(i) }
步驟:
1、i=0;然后傳給函數的形參j,j再賦值給需要執行的代碼。執行完后i=i+1;在判斷i<2,如果是true,則繼續執行下面的代碼。