<script>
<!--
var vehicle = new Array(5);//创建数组对象
for(var i in vehicle){
vehicle[i]= "汽车<p>";
document.write(vehicle[i]);
}
-->
</script>完全没有显式!~和Java新的for循环很像,但不一样啊。搞得我有些晕!

解决方案 »

  1.   

    答:不能。因为: for(var i in vehicle)中的i不是下标,而已经是数组中元素的值了。
      

  2.   

    答:不对,看差了,以为是JAVA呢。
      

  3.   

    答:由于var vehicle = new Array(5);但空间并没有真正分配。解决方法:
    方法之一:var vehicle = new Array(0,0,0,0,0);
    然后用:for-in 
    方法之二:for(var i =0;i<=4;i++)
            
      

  4.   

    这一点和Java不同啊 public static void main(String[] args) {
    int[] a = new int[5];
    for(int i:a){
    i=10;
    System.out.println(i);
    }
    }
      

  5.   

     for(var i in vehicle){在 verhicle里面没有任何东西,这个和Java有点类似的List list = new ArrayList(100);此时,只代表事先分配了100个初始化空间,但并不代表 list里面已经有100个数据了,他依然是空的。
      

  6.   

    不同的是java可以直接在for中对数组或集合元素做赋值或修改
    js必须要显式的将空间开辟出来,才能在for...in中修改元素的值。
    这正是我开始被困惑住的地方。总算看清了....
      

  7.   

    我才发现for...in的价值在于数组的下标为自定义标签时好用啊!也能循环实现!