dra*_*sea 3 javascript for-in-loop
任何人都可以在javascript中解释如何使用... in语句.我读过w3school的文章,但我觉得不太清楚.下面是代码,请解释一下:
<html>
<body>
<script type="text/javascript">
var x;
var mycars = new Array();
mycars[10] = "Saab";
mycars[20] = "Volvo";
mycars[30] = "BMW";
for (x in mycars)
{
document.write(mycars[x] + "<br />");
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
一个for in循环将通过一个对象的每个属性迭代.
在您的示例中,x变量将循环遍历mycars对象中的每个属性.
如果你添加mycars.expensive = "Porsche";,它也会发现.
需要注意的是,如说MDC,for in环应该不被用来通过普通的数组循环:
尽管使用它作为迭代数组的方法可能很诱人,但这是一个坏主意.
for...in除了数组元素之外,该 语句还会迭代用户定义的属性,因此如果您修改数组的非整数或非正属性(例如,通过"foo"向其添加属性或甚至通过添加方法或属性Array.prototype),for...in语句除数字索引外,还将返回用户定义属性的名称.此外,由于迭代的顺序是任意的,因此迭代数组可能无法按数字顺序访问元素.因此,在迭代数组时,最好使用带有数字索引的传统for循环.甚至可以使用类似的参数来反对甚至使用for ... in(至少没有propertyIsEnumerable()或hasOwnProperty()检查),因为它也将遍历Object.prototype(虽然通常不鼓励,但可以在Array.prototype的情况,由用户有用地扩展,其中没有由于包含其他库而导致的名称空间问题,这些库可能不会对此类迭代执行上述检查,并且他们知道此类扩展对其自身使用的影响迭代器,例如for ... in).
| 归档时间: |
|
| 查看次数: |
2408 次 |
| 最近记录: |