for … in

    for 循环的一个变体是 for … in 循环,它可以把一个对象的所有属性依次循环出来:

    var o = {

    name: 'Jack',

    age: 20,

    city: 'Beijing'

    };

    for (var key in o) {

    alert(key); // 'name', 'age', 'city'

    }

    要过滤掉对象继承的属性,用 hasOwnProperty() 来实现:

    var o = {

    name: 'Jack',

    age: 20,

    city: 'Beijing'

    };

    for (var key in o) {

    if (o.hasOwnProperty(key)) {

    alert(key); // 'name', 'age', 'city'

    }

    }

    由于 Array 也是对象,而它的每个元素的索引被视为对象的属性,因此, for … in 循环可以直接循环出 Array 的索引:

    var a = ['A', 'B', 'C'];

    for (var i in a) {

    alert(i); // '0', '1', '2'

    alert(a[i]); // 'A', 'B', 'C'

    }

    请注意 , for … in Array 的循环得到的是 String 而不是 Number