【随记】for 和 for in

for用来遍历数组对象的

var array= ["a","b","c","d"];

for(var i = 0 ; i < array.length ; i++){
    console.log(i + " ===> " +array[i]); 
}
// 输出
// 0 ===> a
// 1 ===> b
// 2 ===> c
// 3 ===> d

for-in用来遍历非数组对象

var object = {"a":"aa","b":"bb","c":"cc"}
for(var k in object){
    console.log(k + " ===> " + object[k]);
}
//输出
//a ===> aa
//b ===> bb
//c ===> cc 

如果给内置原型添加属性后

Object.prototype.Test = function(){};

for输出结果

for输出结果

for-in输出结果

for-in输出结果

可以看到for-in将原型属性也遍历出来了.

如果你只想获取当前对象的私有属性可以加上hasOwnProperty过滤

for(var k in object){
    if(object.hasOwnProperty(k)){
        console.log(k + " ===> " + object[k]);
    }
}

过滤后只打印出object私有的属性

输出结果

总结

  • 一般的情况下 for是用来遍历数组的 , for-in用来遍历对象 .
  • 如果在当前环境中有对内置对象添加自定义属性 , 那么可以用 hasOwnProperty来过滤 , 只遍历对象的私有属性 .

猜你喜欢

转载自blog.csdn.net/simpledate/article/details/60139276