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