首页 > 其他 > 详细

for..in 和 for...of 的区别

时间:2018-05-06 21:09:58      阅读:174      评论:0      收藏:0      [点我收藏+]

for...of 是ES6出现的 循环遍历的是值

语句在可迭代对象(包括 Array, Map, Set, String, TypedArray,arguments 对象等等)上创建一个迭代循环,对每个不同属性的属性值,调用一个自定义的有执行语句的迭代挂钩.
也就是说,for of只可以循环可迭代对象的可迭代属性,不可迭代属性在循环中被忽略了。

 

for..in是 ES5出现的 循环遍历的是属性,并且自定义属性(attribute)也会被遍历,(补:通常隐式的叫做Property),而且遍历还不一定按照顺序

var arr = [1,2,4,5];

for(let i in arr)

{

console.log(arr[i]);

}

 

arr.b = 5;

for(let i in arr)

{

console.log(i)

//b也会被打印出来!

}

 

 

防止自定义attri被打印出来,可以这么用:

for(let i in Obj)

{

if(Obj.hasOwnProperty(key)..

)

}

 

 

for..in 和 for...of 的区别

原文:https://www.cnblogs.com/eret9616/p/8999544.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!