for...in 和 for...of循环的区别
for..in 的遍历实际上是对象的属性名称,一个Array数组也是一个对象,数组的每个元素的索引被视为属性名称,所以可以看到使用for...in 循环Array数组,拿到的其实是每个元素的索引
var a = [ 'A' , 'B', 'C' ];
a.name = ' Hello ' ;
for (var i in a ){
alert ( i ) // '0' , '1' , '2' , 'name'
}
当为a手动添加一个属性name的时候,for...in循环会把name属性也包括在内,而Array的length属性却不包括在内,for...of循环的是可迭代对象的value
for...of 它只是循环集合本身的元素