以任意顺序遍历一个对象的可枚举属性 (opens new window)。遍历数组时,key为数组下标字符串;遍历对象,key为对象字段名。
let arr = [{age: 1}, {age: 5}, {age: 100}, {age: 34}] for (let key in arr) { console.log(key, arr[key]) } // 打印 // 0 {age: 1} // 1 {age: 5} // 2 {age: 100} // 3 {age: 34}
let obj = {f1: 'test1', f2: 'test2'} for (let key in obj) { console.log(key, obj[key]) } // 打印 // f1 test1 // f2 test2
ES6引入的新语法。在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments对象,NodeList对象)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。
Object对象不是可迭代对象,故for of 不支持。for of有个很大的特点是支持数组的break中断。
let arr = [{age: 1}, {age: 5}, {age: 100}, {age: 34}] for(let {age} of arr) { if (age > 10) { break // for of 允许中断 } console.log(age) } // 打印 // 1 // 5