区别:
(1)for...in 循环出来的是数组的每个元素的下标,而for...of 循环出来的是数组的每个元素。
(2)a.anme = 'hello';如果给数组添加一个额外的属性anme的话,for...in 也会把这个额外的属性循环出来,而for...of 则不会。
var a = ['A', 'B', 'C'];a.anme = 'hello';for( var x in a ){console.log('x1:',x);//0,1,2,nameconsole.log('xx1:',a.length);// 3}for( var x of a ){console.log('x2:',x);// A,B,Cconsole.log('xx2:',a.length);// 3}
另外还有两个循环:map和forEach。
a.forEach(function(ele,index,array){console.log(ele + '--' + index + '--'+ array)})a.map(function(ele,index,array){console.log(ele + '--' + index + '--'+ array)})