轉自:http://blog.csdn.net/lushuaiyin/article/details/8541500javascript
- <html>
- <body>
- <b><center>
- js中for循環的研究
- </center></b>
- <script type="text/javascript">
- //使用for (obj in array)的形式obj不用聲明。
- var mycars = new Array();
- mycars[0] = "Saab";
- mycars[1] = "Volvo";
- mycars[2] = "BMW";
-
- //實驗一:
- /*
- for (x in mycars)
- {
- //alert('--'+x);//每次彈出--0,--1,--2,而不是變量的內容
- document.write(mycars[x] + "------x---<br />")
- }
-
- alert(x);//2
- */
-
-
-
- //實驗二:
- /*
- for (var y in mycars)
- {
- document.write(mycars[y] + "--y---<br />")
- }
-
- alert(y);//2
- */
-
-
-
- //實驗三:
- /*
- for (i=0;i<mycars.length;i++)
- {
- document.write(mycars[i] + "---i----<br />")
- }
-
- alert(i);//3,之因此是3,是由於在循環外,最後還要走一次i++
- */
-
-
-
- //實驗四:
- /*
- for (var k=0;k<mycars.length;k++)
- {
- document.write(mycars[k] + "---k---<br />")
- }
-
- alert(k);//3
- */
-
-
-
- //實驗五:
- /*
- for (var h=0;h<mycars.length;h++)
- {
- document.write(mycars[h] + "---h---<br />")
- var objhhh='haha';
- }
-
- alert(objhhh);//haha
- */
- </script>
-
- 從上面的實驗能夠得出如下幾點結論:
- 1,在for循環中變量都是全局的。不像java,在函數內聲明的變量,在函數外不能直接訪問,js都是全局的,
- 因此能夠訪問。(實驗五)
-
- 2,基於上面的結論,咱們能夠知道,在for()循環中,括號中的變量最後已經改變了,並且是全局變量,
- 能夠在循環外被訪問。
-
- 3,對於for循環,本實驗要說明的是在for(.. in ..)
- 或者for(..=0; ..<..; ..++)這兩種形式變量前面的var能夠聲明,也能夠不聲明。(實驗一到實驗四)。
- js默認會幫你聲明一個var(不然的話,這個變量本應該是undefined了)。
-
- 4,再談for(.. in ..)和for(..=0; ..<..; ..++)的區別:
- for(x in arr)中變量x是循環的索引數,即1,2,3....,(實驗一)。
- 這和java不同,在java中的for(x in arr),x已是數組中的變量了,也就是變量的值。
- 而在for(i=0; i<arr.length; i++)這種形式就明確指出了,i就是索引值。
- </body>
- </html>