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

Posted 雨帘轻挂

tags:

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

以下是使用for...in和for...of分别对Array,Set,Map做的测试:

for...in由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组也是一个对象,数组中的每个元素的索引被视为属性名称,所以我们可以看到使用for...in循环Array数组时,拿到的其实是每个元素的索引。

如上所示,当我们为a多手动添加一个属性name的时候,for...in循环会把name属性也包括在内,而Array的length属性却不包括在内。
for...of循环则不存在上述的问题,它只循环集合本身的元素。这就是为什么引入for...of循环。

 

以上是关于for...in和for...of循环的区别的主要内容,如果未能解决你的问题,请参考以下文章

for循环和for in的区别

javascript总for of和for in的区别?

Js中for in 和for of的区别

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

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

for循环,for in和for of的区别