在js中经常要是用for循环遍历数组,对象;那for, forEach, for in, for of,之间有什么区别呢?
let arr = [1,2,3,4,5]
a.a = 'a'
for
原始的遍历方法
编程式
for(var i =0; i<arr.length;i++){
console.log(arr[i])
}
// 1
// 2
// 3
// 4
// 5
forEach
声明式(不关心如何实现的)
不支持return
arr.forEach(function(item){
console.log(item)
})
// 1
// 2
// 3
// 4
// 5
for in
key
会变成字符串类型
包含数组的私有属性
for (let key in arr) {
console.log(arr[key]);
}
// 0
// 1
// 2
// 3
// 4
// a
for of
支持return
不遍历私有属性
不能遍历对象
for (let val of arr){
console.log(val)
}
// 1
// 2
// 3
// 4
// 5