for in 和 for of的区别

300 阅读1分钟
一、使用场景不同
  1. for in 适用于可枚举属性,例如对象、数组、字符串
  2. for of 适用于可迭代对象,例如Array、String、Map、Set、函数的arguments对象、nodeList对象
二、遍历范围不一样
  1. for in 能遍历自身的可枚举属性和原型上的可枚举属性
  2. for of 一般只能遍历自身的可枚举属性(具体和迭代器内部的实现有关)
三、得到的结果不一样
  1. for in 得到的是key(并且不能保证顺序)
  2. for of 得到的是value(具体和迭代器内部的实现有关)

一般情况下,遍历对象就用for in,遍历数组就用for of

for in 遍历对象得到key,遍历数组得到下标 for of 不能遍历对象,遍历数组得到值