for in for of区别

Posted

tags:

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

参考技术A

for in 遍历的是数组的索引,即下标值;for of 遍历的是数组元素值

for in是ES5标准,遍历的是key(可遍历对象,数组或字符串的key);但在使用时要注意以下问题:

1、for in 遍历数组时,index索引为字符串型数字(非数字),不能直接进行几何运算。

2、遍历数组时,遍历顺序有可能不是按照实际数组的内部顺序(可能按照随机顺序)。

3、使用for in 会遍历数组所有的可枚举属性。如原型方法里的method和name属性,所以通常需要使用hasOwnProperty()方法判断某个属性是否是该对象的实例的属性,从而实现将原型对象中的属性从循环中剔除。

所以通常for in更适合遍历对象,不建议使用for-in遍历数组。

for of 是ES6标准,遍历的是value值(可遍历对象,数组或字符串的value)。可以简单,正确的遍历数组(不会遍历原型中的method和name属性)。

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

1、推荐在循环对象属性的时候,使用 for...in,在遍历数组的时候的时候使用for...of。

2、for...in 循环出的是 key,for...of 循环出的是 value

3、for...of 不能循环普通的对象,需要通过和 Object.keys()搭配使用

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

for in for of区别

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

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

javascript总for of和for in的区别?

forfor...infor...of的区别

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