码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-05-06 21:25:01      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:调用   property   spl   自定义   argument   对象   OLE   忽略   let   

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 的区别

标签:调用   property   spl   自定义   argument   对象   OLE   忽略   let   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!