for in与for of
for in遍历数组的毛病
1.index索引为字符串型数字,不能直接进行几何运算
2.遍历顺序有可能不是按照实际数组的内部顺序
3.使用for in会遍历数组所有的可枚举属性,包括原型。
所以for in更适合遍历对象,不要使用for in遍历数组。
for-of循环不支持普通对象
for in :
for … in 循环返回的值都是数据结构的 键值名。遍历对象返回的对象的key值;
遍历数组返回的数组的下标(key)。
for … in 循环不仅可以遍历数字键名,还会遍历原型上的key值和手动添加的其他键;
特别情况下, for … in 循环会以任意的顺序遍历键名
总结一句: for in 循环特别适合遍历对象。
for of :
for of 循环用来获取一对键值对中的值,而 for in 获取的是 键名for of 不同与 forEach, 它可以与 break、continue和return 配合使用,也就是说 for of 循环可以随时退出循环。
ES5的话也可以使用forEach,ES5具有遍历数组功能的还有map、filter、some、every等,只不过他们的返回结果不一样。