《for循环,forEach,for..in》

88 阅读1分钟

遍历数组

for循环遍历数组

let arr=[1,2,3,4,5,6]
for(let i=0;i<arr.length;i++){
    console.log(i,arr[i])
}

forEach遍历数组

let arr=[1,2,3,4,5,6]
arr.forEach(fucntion(item,index){
    console.log(index,item)
})

for循环vsforEach

  1. for循环里有break和continue,而forEach没有,他只是个函数
  2. for循环可以在循环到某一个下标时停止(if break),而forEach不能
  3. for循环是一个关键字:块级作用域 forEach是函数作用域

最后来说for..in

强调forin主要用来遍历对象,遍历数组会有很多问题

话不多说直接上代码

let arr=[1,2,3,4,5,6]
for(let i in arr){
    if(i+1<6){
        console.log(i)
    }
}

以上代码输出结果是什么? 你以为是0,1,2,3,4??? No!答案是0 !!!

why

let arr=[1,2,3,4,5,6]
for(let i in arr){
    console.log(typeof i)  //string
}

look! string 所以上面的代码会进行拼串(插一嘴:按照字符对应的unicode编码进行比较)

另外如果使用forin来遍历数组是遍历不到空数组的,例如你用delete方法删掉数组的某一个元素,那么数组的长度不变,对应的元素会变成empty,forin是遍历不到的