js中for循环的研究
转自:http://blog.csdn.net/lushuaiyin/article/details/8541500
- <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>