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>