迴圈敘述 for 與 for in

Javascript的for迴圈敘述:

迴圈敘述在所有程式語言中都是使用相當廣泛的,在javascript中常用的迴圈與法有兩種,

for迴圈敘述與while迴圈敘述,兩種迴圈敘述都是用來重複執行某些程式碼區塊。

這篇主要介紹的是for迴圈敘述,以及跟for很像的兄弟 for in敘述。

通常,我們使用for來操作陣列元素,而使用for in來操作非陣列物件,

有時候我們把for in稱之為列舉。

Javascript的for迴圈敘述範例:

一個0加到10的例子:

<script type="text/javascript">
 for(var i=1,str="0",val=0;i<11;i++)
 {
 str=str+"+"+i;
 val+=i;
 }
 document.writeln(str+"="+val);
</script>

輸出 ==>0+1+2+3+4+5+6+7+8+9+10=55

Javascript的for迴圈敘述語法:

for ([initialization]; [condition]; [final-expression])
 {
 some javascript codes;
}

initialization:初始值,通常用來初始化for迴圈中的計數器,可以用var 來宣告變數,不過這裡的變數並非是for迴圈內的區域變數,變數的有效範圍其實跟for迴圈是相同的。

condition:條件判斷,每個for迴圈開始時都會運算此條件式,只有運算結果為真時才會執行迴圈內的程式碼區塊。

final-expression:運算區,當迴圈結束,下一個迴圈開始前會執行這程式碼。

initialization, condition, final-expression都可以省略。

condition是迴圈的判斷條件,當結果不為真時,就是迴圈的結束。

迴圈的結束條件是很重要的一件事,如果沒有設定好可能會導致無窮迴圈,

如果要省略condition,那迴圈內勢必要有個 break敘述來跳出。

注意 javascript單執行緒的,如果你的迴圈是無窮迴圈,那其他區塊的程式碼,

就不會被執行到,除非你在迴圈內有處理,不然所有的事件都無法回應,

即便是非同步的回呼函式(像是AJAX)都無法執行。

Javascript的 for in  範例:

列出所有的window屬性:

<script type="text/javascript">
  for ( var a in window)
  {
  document.writeln( a+"=" );
  document.writeln(eval("window."+ a));
  document.writeln("<br/>");
  }
</script>

輸出會隨著瀏覽器而有所不同,我就不列了。

Javascript的 for in 語法:

for ( A in B)

for in 可以用來列舉某的物件屬性或陣列的鍵(key),

在每一次的迴圈中A都代表著物件B的某個屬性。

用for in來列舉陣列其實不是個好作法,如果陣列物件本身被擴充過,

很可能會導致邏輯上的錯誤。

MDN中的 for迴圈敘述:for

MDN中的 for in 敘述:for in

w3school中的for 與 for in :for 與 for in

 
 

  按個讚!~支持本站!~

FB推薦載入中  

你可能會有興趣的文章: