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 它只是循环集合本身的元素

原文地址:https://www.cnblogs.com/qrf1997/p/11168787.html