一、语法
1、遍历数组
let myArr=[1,2,3,4,5]; for (let ele of myArr) { console.log(ele); } let myArr=[1,2,3,4,5]; for (const ele of myArr) { console.log(ele); }
2、遍历字符串
let myStr=“camille”; for (let ele of myStr) { console.log(ele); }
3、循环一个拥有enumerable属性的对象
for of循环并不能直接使用在普通的对象上,但如果我们按对象所拥有的属性进行循环,可使用内置的Object.keys()方法。
Object.keys(o),遍历对象的可枚举属性;
Object.getOwnPropertyName(o),遍历对象不可枚举的属性。
for (var key of Object.keys(myOject)) { console.log(key + ": " + myOject[key]); }
循环遍历对象的value,它既比传统的for循环简洁,同时弥补了forEach和for in循环的短板。它主要作用于数组,类数组对象,字符串,可以break,continue,return。火狐谷歌支持该语句,需要设置,IE不支持。
二、执行效率
var arr = [], arrlen = arr.length = 1000000; for(var i=0; i<arrlen; i++){ arr[i] = 'looptest'; }
var t1 = +new Date(); for(var item of arr){ } var t2 = +new Date(); console.log('for of:' + (t2-t1));