·for-in语句
for语句是一种精准的迭代语句,可以用来枚举对象的属性。
for ( property in expression)statement
for (var propName in Window){
document.write(propName);
}
我们使用for-in循环来显示了BOM中window对象的所有属性。每次执行循环时,都会叫window对象存在的一个属性名赋值给变量propName。这个过程一直持续到对象中所有的属性都被枚举一遍为止。
ECMAScript对象没有顺序。因此,通过for-in 循环输出的属性名的顺序是不可预测的。,具体来讲,所有属性都会被返回一遍,单返回的先后次序可能因浏览器而异。
如果表示要迭代的对象的变量值为null或者undefined,for-in语句会抛出错误。 ECMAScript5更正这个行为对这种情况不在抛出错误,而只是不执行循环体。为了保证最大限度的兼容性,建议使用for-in循环之前,先检测改对象的不是null或者undefined。
在Safari3以前版本的for-in语句中存在一个bug 改bug会导致某些属性被返回两次。