//对于普通的对象,for...of结构不能直接使用,会报错,必须部署了 Iterator 接口后才能使用,for-of用于数组对象。
//但是,这样情况下,for...in循环依然可以用来遍历键名。
let es6 = {
edition: 6,
committee: "TC39",
standard: "ECMA-262"
};
for (let e in es6) {
console.log(e);
}
// edition
// committee
// standard
for (let e of es6) { // TypeError: es6[Symbol.iterator] is not a function//ES6不是迭代的,不能直接使用for of 必须转成数组
console.log(e);
}
//上面代码表示,对于普通的对象,for...in循环可以遍历键名,for...of循环会报错。
//一种解决方法是,使用Object.keys方法将对象的键名生成一个数组,然后遍历这个数组。
console.log(Object.keys(es6));//["edition", "committee", "standard"]
for(let e of Object.keys(es6)){
console.log(e);
}
//edition
//committee
//standard