for循环

1 for-in循环用来获取对象或者数组的 键名 (包括ES6的Map和Set数据结构)

1
2
3
4
5
6
7
let arr = ['bar',,'foo']
console.log(arr.length)
for(let a in arr ){
console.log(Object.prototype.hasOwnProperty.call(arr,a))
console.log(a) // 0 2
}
如果arr是不是可遍历的结构,那么该循环则不会执行。

2 for-of 循环用来遍历获取对象或者数组的 键值 (包括ES6的Map和Set数据结构)

1
2
3
4
for (let a of arr){
console.log(a) //bar undefined foo
}
//for-of 循环会将数组中定义或者未定义的键值都遍历