ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# for of/for in 推荐在循环对象属性的时候,使用for...in,在遍历数组的时候的时候使用for...of。 > for...in循环出的是key,for...of循环出的是value。 注意,for...of是ES6新引入的特性。修复了ES5引入的for...in的不足 for...of不能循环普通的对象,需要通过和Object.keys()搭配使用。 ```javascript let aArray = ['a', 123, { a: '1', b: '2' }]; for (let index in aArray) { console.log(`${aArray[index]}`); } for (var value of aArray) { console.log(value); } // for in // a // 123 // [object Object] // for of // a // 123 // { a: '1', b: '2' } ``` 但是,如果对aArray增加一个name熟悉 如下 ```javascript let aArray = ['a', 123, { a: '1', b: '2' }]; aArray.name = 'aaa'; for (let index in aArray) { console.log(`${aArray[index]}`); } for (var value of aArray) { console.log(value); } //a //123 //[object Object] //aaa //for of //a //123 //{ a: '1', b: '2' } ``` 可以看出for in 也循环了aArray的自有属性name。所以数组时候尽量不使用for in。