for in for of区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for in for of区别相关的知识,希望对你有一定的参考价值。
参考技术Afor 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区别的主要内容,如果未能解决你的问题,请参考以下文章