for … in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。
// for... of循环是ES6引入的新的语法
var a =["A", "B", "C"];
var s = new Set(["A", "B", "C"]);
var m = new Map([[1, "x"],
[2, "y"],
[3, "z"],
]);for(var x of a){
// 遍历Array
console.log(x); // A,B,C
}for(var x of s){
// 遍历Set
console.log(x); // A,B,C
}for(var x of m){
// 遍历Set
console.log(x); // [1, "x"], [2, "y"],[3, "z"],
}
遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。// for ... of循环是ES6引入的新的语法 var a = ["A", "B", "C"]; var s = new Set(["A", "B", "C"]); var m = new Map([ [1, "x"], [2, "y"], .