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

Posted eret9616

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for..in 和 for...of 的区别相关的知识,希望对你有一定的参考价值。

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 的区别的主要内容,如果未能解决你的问题,请参考以下文章

for in for of区别

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

for...in 和 for...of 有什么区别

javascript总for of和for in的区别?

javaScript的for of和for in 的区别总结

for of 和 for in 的区别