js中for循环的研究

转自:http://blog.csdn.net/lushuaiyin/article/details/8541500

  1. <html>  
  2. <body>  
  3. <b><center>  
  4.   js中for循环的研究   
  5. </center></b>  
  6. <script type="text/javascript">  
  7. //使用for (obj in array)的形式obj不用声明。  
  8. var mycars = new Array();  
  9. mycars[0] = "Saab";  
  10. mycars[1] = "Volvo";  
  11. mycars[2] = "BMW";  
  12.   
  13. //实验一:  
  14. /*    
  15. for (x in mycars)  
  16. {  
  17.     //alert('--'+x);//每次弹出--0,--1,--2,而不是变量的内容  
  18. document.write(mycars[x] + "------x---<br />")  
  19. }  
  20.   
  21. alert(x);//2  
  22. */  
  23.   
  24.   
  25.   
  26. //实验二:  
  27. /*    
  28. for (var y in mycars)  
  29. {  
  30. document.write(mycars[y] + "--y---<br />")  
  31. }  
  32.   
  33. alert(y);//2  
  34. */  
  35.   
  36.   
  37.   
  38. //实验三:  
  39. /*    
  40. for (i=0;i<mycars.length;i++)  
  41. {  
  42. document.write(mycars[i] + "---i----<br />")  
  43. }  
  44.   
  45. alert(i);//3,之所以是3,是因为在循环外,最后还要走一次i++  
  46. */  
  47.   
  48.   
  49.   
  50. //实验四:  
  51. /*     
  52. for (var k=0;k<mycars.length;k++)  
  53. {  
  54. document.write(mycars[k] + "---k---<br />")  
  55. }  
  56.   
  57. alert(k);//3  
  58. */  
  59.   
  60.   
  61.   
  62. //实验五:  
  63. /*     
  64. for (var h=0;h<mycars.length;h++)  
  65. {  
  66. document.write(mycars[h] + "---h---<br />")  
  67. var objhhh='haha';  
  68. }  
  69.   
  70. alert(objhhh);//haha  
  71. */  
  72. </script>  
  73.   
  74. 从上面的实验可以得出以下几点结论:  
  75. 1,在for循环中变量都是全局的。不像java,在函数内声明的变量,在函数外不能直接访问,js都是全局的,  
  76. 所以可以访问。(实验五)  
  77.   
  78. 2,基于上面的结论,我们可以知道,在for()循环中,括号中的变量最后已经改变了,而且是全局变量,  
  79. 可以在循环外被访问。  
  80.   
  81. 3,对于for循环,本实验要说明的是在for(..  in ..)  
  82. 或者for(..=0;  ..<..;  ..++)这两种形式变量前面的var可以声明,也可以不声明。(实验一到实验四)。  
  83. js默认会帮你声明一个var(否则的话,这个变量本应该是undefined了)。  
  84.   
  85. 4,再谈for(..  in ..)和for(..=0;  ..<..;  ..++)的区别:  
  86. for(x  in arr)中变量x是循环的索引数,即1,2,3....,(实验一)。  
  87. 这和java不一样,在java中的for(x  in arr),x已经是数组中的变量了,也就是变量的值。  
  88. 而在for(i=0;  i<arr.length;  i++)这种形式就明确指出了,i就是索引值。  
  89. </body>  
  90. </html>  
posted @ 2013-10-11 22:09  清灵阁主  阅读(7568)  评论(0编辑  收藏  举报