let arr = [1, 2, 3, 4, 5, 7] // 普通遍历 for (let i = 0; i < arr.length; i++) { console.log(arr[i]) } console.log('******************************') //foreach foreach 方法没办法使用 break 语句跳出循环,或者使用return从函数体内返回 //问题:循环一旦开始了不能结束 arr.forEach((i, v) => { console.log(i) console.log(v) }); console.log('******************************') // for in // 1.index 值 会是字符串(String)类型 // 2.循环不仅会遍历数组元素,还会遍历任意其他自定义添加的属性,如,objArr上面包含自定义属性,objArr.name,那这次循环中也会出现此name属性 // 3.某些情况下,上述代码会以随机顺序循环数组 // for-in循环设计之初,是给普通以字符串的值为key的对象使用的。而非数组 for (let j in arr) { console.log(j); console.log(typeof j) } console.log('******************************') //for...of 遍历 //写起来简单 可以随时退出循环 获取不到索引 // 1.可以避免所有 for-in 循环的陷阱 // 2.不同于 forEach() ,可以使用 break, continue 和 return // 3.for-of 循环不仅仅支持数组的遍历。同样适用于很多类似数组的对象 // 4.它也支持字符串的遍历 // 5.for-of 并不适用于处理原有的原生对象 for (let i of arr) { // console.log(i) console.log(arr[i]) } let str = '欢迎来到天亮教育来学习' for (let i of str) { console.log(i) } </script>