<script type="text/javascript">
var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[2] = "Volvo"
mycars[4] = "BMW"
<!--for (y in mycars)
{
document.write(mycars[y] + "<br />")
}
alert(mycars.length);
-->
for(var i=0;i<mycars.length;i++){
document.write(mycars[i] + "<br />")
}
</script>
为什么for in输出的话没有undefined
而for会输出undefined值呢?
他们在实际应用中有哪些区别?
for:
Saab
undefined
Volvo
undefined
BMW
for in:
Saab
Volvo
BMW
for in 语法遍历一个对象的可枚举属性
for 按设置的条件循环执行包含的语句块
对于数组对象mycars来说其长度为5,有“1”,“2”,“4”这3个可枚举属性
所以
可输出Saab,Volvo,BMW
而当
mycars.length值为5,y值分别为0,1,2,3,4
mycars[y]相当于在执行mycars[String(y)]
1,3下标处没有定义值,为undefined
输出结果为Saab,undefind,Volvo,undefined,BMW