学习javascript中的for-in 语句

发布时间:2019-11-22编辑:脚本学堂
介绍下,javascript中for in语句的用法,通过一个例子来帮助大家理解,有需要的朋友参照下吧。

javascript中,for-in语句是一种精准的迭代语句,可以用来枚举对象的属性

for-in语句的语法:
for (property in expression) statement

例子:
 

复制代码 代码示例:
for (var propName in window) {
    document.write(propName);
    document.write("<br/>")
}

使用for-in循环来显示了BOM中window对象的所有属性。每次执行循环时,都会将window对象中存在的一个属性名赋值给变量propName。这个过程会一直持续到对象中的所有属性都被枚举一遍为止。与for语句类似,这里控制语句中的var运算符也不是必须的。但是为了保证使用局部变量,我们推荐上面例子中的这种做法。

ECMAScript对象的属性没有顺序。因此,通过for-in循环输出的属性名的顺序是不可预测的。

所有属性都会被返回一次,但返回的先后次序可能会因为浏览器而异。
但是,如果表示要迭代的对象的变量值为null或undefined,for-in语句会抛出错误。
ECMAScript5 更正了这一行为;对这种情况不再抛出错误,而只是不执行循环体。

为了保证最大限度的兼容性,建议在使用for-in循环之前,先检测确认该对象的值不是null或undefined。
Safari 3以前版本的for-in语句中存在一个bug,该bug会导致某些属性被返回两次。