for循環和forin循環是ES3中的數組和對象迭代方法,在ES5中加入了原生方法Array.every()和object.forEach()方法來迭代,下面的例子用來比較兩種方式的運行速度。
注意:IE不兼容。
/** * Created by Administrator on 2016/12/22. * for()循環和Array.every()方法運行速度 */ var Arr=[5,6,12,23,0,11,"wasd",'on',34,22,111,8,9,89,'off','12','oe']; (function(){ console.time("for"); for(var i=0;i<Arr.length;i++){ console.log(Arr[i]); } console.timeEnd('for'); })(); (function(){ console.time('every'); Arr.every(function(ele,index,arr){ console.log(ele); if(index!==Arr.length){ return true; } }); console.timeEnd('every'); })();
運行結果:
/** * Created by Administrator on 2016/12/22. * object的forIn()循環對比forEach()方法運行速度 */ var obj={ a: 'A', b: 'B', 'c-d-e': 'CDE', 'c':'c', d:'d', e:'e', name:'name', pro:{ 'proa':'we', 'proa':12 } }; (function(){ console.time('forin'); for(key in obj){ console.log(obj[key]); } console.timeEnd('forin'); })(); (function(){ console.time("foreach"); Object.keys(obj).forEach(function(ele,index,arr){ console.log(obj[ele]); }) console.timeEnd('foreach'); })();
運行結果2: