1、第一个for...in的js代码:
<script type="text/javascript">
var x
var mycars = new Array()
mycars[0] = "刘德华"
mycars[1] = "梁朝伟"
mycars[2] = "金城武"
for (x in mycars)
{
document.write(mycars[x] + "<br />")
}
</script>
输出的结果:刘德华 梁朝伟 金城武
我们知道in在英文里面是在...之内,我们可以把上面学x in mycars理解为x在mycars内,其实x变量就是控制mycars内部索引值。
一个形象的比喻:x可以比做汽车的方向盘,mycars比做一部车,你要车开往哪里,就必须用方向盘来控制。
2、再看下面一个js代码:
<body>
点击按钮循环对象属性。
<button onclick="myFunction()">点我</button>
<p id="demo">
<script>
function myFunction() {
var person = {fname:"John", lname:"Doe", age:25};
var text = "";
var x;
for (x in person) {
text += person[x] + " ";
}
document.getElementById("demo").innerHTML = text;
}
</script>
</body>
仔细对比上面代码,你会发现有两点不同:
1)一个是数组,另一个是对象
2)形式上有区别,你会发现一个的索引值下标标明例如mycars[0] = "刘德华"
另一个却没有标明例如fname:"John"
但其实两者的x本质是一样,都是用来控制它们in后面变量(mycars,person)的索引值。
其实你可以这样理解
person[x]是person[1]时,text为John+空格,
下面以此类推