for in 、for of 、forEach用法总结

1.  for in 既可以枚举对象也可以枚举数组,枚举出来的是key(数组的key是0,1,2...)

2.  for in 会把原型上的属性也枚举出来,但可以通过hasOwnProperty过滤

3.  forEach 遍历数组的时候是无法break或者return false中断

4.  for of 可以迭代数组、字符串、arguments类数组对象、NodeList这类DOM集合、Map、Set、generators.

5.  for of 迭代数组、字符串...得到的直接是value值(不是key(索引))

6.  for of 不能直接迭代对象, obj is not iterable

7.  for of 可以通过break中断循环

 

总结: 对于纯对象的遍历,for..in要厉害一些;对于数组遍历,如果不需要知道索引,for..of迭代更合适,因为还可以中断;如果需要知道索引,则forEach()更合适;对于其他字符串,类数组,类型数组的迭代,很显然,for..of优势非常明显。

你可能感兴趣的:(for in 、for of 、forEach用法总结)