9、for in循环、forEach循环、for of循环的区别
for-in循环
理解:
for-in循环是JS中的一种常见迭代语句,可以用它实现对象、数组中的所有属性或元素的遍历
案例:
for(var 变量 in 数组名或集合名) //变量中存放的数组或集合的索引
{
数组名[变量]
}
let obj = {a: 1, b: 2, c: 3}; for (let prop in obj) { console.log(prop + ': ' + obj[prop]); }
输出结果:

解释:
上述代码主要就是将对象obj中的每一个属性的名称和对应的值进行输出。具体介绍:循环首先需要创建一个变量prop,它用于存储当前遍历到的属性名。然后,在每一次循环迭代中,prop将
依次赋值为对象中的每一个属性名(a,b,c)。
forEach循环
理解:
forEach是JavaScript中的数组方法,可以用于遍历数组中的每一个元素并且执行指定的操作。
案例:
arr.forEach(function(k){ //依次从数组中取出元素放在k中,然后将k作为参数传递给函数
console.log(k);
})
let arr = ['apple', 'banana', 'orange']; arr.forEach(function(item, index) { console.log(`${index}: ${item}`); });
执行结果:

理解:
在上述的代码中将输出输入arr中的每一个元素,以及他们在数组中的索引,具体点来说,我们在forEach方法当中编写了一个匿名函数,该函数接受两个参数:当前遍历到的元素怒(item)和对应的索引(index)。在循环迭代中,这个匿名的函数将一次被调用,并且item和index参数将分别被赋值为数组中的每个元素和对应的索引。最后通过console.log进行打印出每一个元素的内容和他在数组中的索引。
注意点:forEach循环不像普通for循环那样支持break和continue语句,因此如果想要在循环过程中停止退出,可以使用some、every、find等其他方法进行处理。同时,在使用forEach循环时,也需要注意它只能遍历数组元素而不能遍历对象属性
for-of循环:
理解:
for-of循环是JavaScript中的一种用于遍历可迭代的对象语句,包括数组、字符串、Map、Set等数组结构。
案例:
for(var 变量 of 数组名或集合名) //变量中存放的是数组或集合中的元素
{
console.log(变量);
}
let arr = ['apple', 'banana', 'orange']; for (let item of arr) { console.log(item); }
执行结果:

解释:
上述代码将输出数组ar中的每个元素。具体来讲,循环第一步是创建一个变量item,它用于存储当前遍历到的元素。最后,在每一次的循环迭代当中,item将分别被赋值为数组中的每个元素。最后,我们可以使用console.log打印出每个元素的内容
注意点:
for-of循环只能用于遍历可迭代对象而不能遍历普通对象。此外,与forEach循环不同的是,for-of循环支持使用break和continue关键字来控制循环执行流程
简单介绍:
- for-in循环:可以遍历对象和数组,数组遍历下标,对象遍历属性。
- forEach循环:遍历全部数组,不能通过return结束,消耗性能,用于不转换数组对象操作。
- for-of循环:遍历时获得其中的每一项(属性值),可以通过return结束,循环没有下标。

浙公网安备 33010602011771号