js中用for in 语句遍历数组问题

var arr=new Array(3);
用for循环遍历:
for(var x=0;x<arr.length;x++){
document.write(arr[x]);
}
网页上显示:undefined undefined undefined

现在用for in 遍历:
for(var x in arr){
document.write(arr[x]);
}
为什么网页上什么都不显示?

这两种方式有差异的,对于第一种方式来说,在new的时候确定了array的大小,循环数组大小取值,因为没有初始值,都是undefined.
第二种方式是通过array的属性方式,是不关心数组大小的,只关心里面内容,因为没有赋值,因为只有长度,实际内部还是没有内容,无法形成key,value的方式,也就没有输出。

var arr=new Array(3);
用for循环遍历:
for(var x=0;x<arr.length;x++){
document.write(arr[x]);
}
网页上显示:undefined undefined undefined
arr没有初始化,所以显示未定义的错误

现在用for in 遍历:
for(var x in arr){
document.write(arr[x]);
}
为什么网页上什么都不显示?
因为这个数组,没有初始化,所以循环没有满足条件去运行

用for in,直接写document.write(x);就可以了。x不是数组的下标而是数组中的值

很显然嘛,你的数组没有初始化,所以提示undefined。

数组里面没东西,没初始化

引入jquery用each循环最好了

第一种相当于x是索引值,输出用arr[x],第二种和第一种是有区别的,输出肯定不能还是那样。。。第二个没有初始化内容也不会显示。。。