一楼的只说出了一个特殊的情况-数组,其实所有对象都可以应用for。。。in的
七主要作用为遍历对象的所有属性,下面给出一个实例
<html>
<head>
<title>一个使用到for...in循环的Javascript示例</title>
</head>
<body>
<script type="text/javascript">
// 创建一个对象 myObject 以及三个属性 sitename, siteurl, sitecontent。
var myObject = new Object()
myObject.sitename = "布啦布啦"
myObject.siteurl = "blabla.cn"
myObject.sitecontent = "网页教程代码图库的中文站点"
//遍历对象的所有属性
for (prop in myObject)
{
document.write("属性 '" + prop + "' 为 " + myObject[prop])
document.write("<br>")
}
</script>
</body>
</html>
for(声明:表达式)
语句
声明 是一个变量,例如 Object listElement。这个变量应该有自己的类型,这样,它就可以与将遍历的列表、数组或集合中的每一个项兼容。
表达式 就是一个表达式。它计算的结果应当是可以遍历的。在现在,只要保证表达式 计算的结果是一个集合或者数组就可以了。表达式可以简单到就是一个变量,或者是一个方法调用(例如 getList()),亦或是包含布尔逻辑或三目运算符的复杂表达式。只要它返回一个数组或集合,就一切 OK。
语句 代表循环的内容,它对声明 中定义的变量进行操作;当然,这是一个循环,所以语句 将应用到数组中集合的每个项目上。而且,使用大括号({ 和 })时,还能使用多条语句。
其用法如下:创建一个变量,指向要遍历的数组或集合,然后对定义的变量进行操作。不用对列表中的每个项目进行赋值,因为 for/in 替您处理了这件事。
在javascript中我们通常用的for,for in方法总感觉没什么区别,但是在一次的学习的过程中我发现了for与for in还真有点区别。接下来让我们简单的区分一下:
首先先看一下for的语法的结构以及他的写法
for(初始值,判断条件,步长值){
};
for in是用来遍历来用的
两者一对比就大致可以看出for in遍历对象是最适合了,如果用for的话,对象里面的k值和value值只好无能为力,那就只能用for in。如果只是普通的数组,用for最适合;那如果for in遍历普通数组话,他会自带length属性,到后面会报错,所以for in不适合循环遍历普通数组。
var arr,str=""意图并不是让arr的值成空,而是初始化变量~并且如果已经声明过的话,就初始化值为空。
for( arr in myArray){
这是一个数组的遍历~ arr只是这个循环里面的内部变量,表示数组的键值。
第一次是0 ,第二次是1 。。。一直到数组的最大键值 4.然后跳出循环。
alert(str) //这样alert,你就能看到arr每次的值~