转自: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>