for循环,for...in循环,forEach循环的区别

for循环

是应用最广泛的循环形式,适用于已知循环次数,循环嵌套情况

for循环的执行顺序:先定义循环变量的初始值,在判断是否满足进入条件,如果满足条件就执行循环体,执行步长;如果不满足条件就退出循环
for( 定义循环变量的初始值 ; 判断进入条件 ; 步长 ){ 循环体 }

for循环的优点之一是将与循环变量和循环次数相关的设定都定义在()中设定内容更加集中,不容易造成语法形式混乱
在这里插入图片描述

forEach循环

数组.forEach(function(形参1,形参2,形参3){})
形参1: 存储的是当前循环次数时,获取的单元数据
参数2: 存储的是当前循环次数时,获取的单元索引下标
参数3: 存储的是原始数组

三个形参,不一定都要定义,可以根据实际需求
形参可以任意定义,只要符合命名规范就可以
forEach() 只能循环遍历数组,不能循环遍历对象

for…in循环

for…in 数组,对象都可以使用的循环
for(var 自定义变量 in 数组){程序}
自定义变量 : 存储数组单元索引,存储的索引的数据类型是字符串类型, 如果要执行加法运算,需要转化为数值类型
会将数组的索引下标存储在自定义变量中,通过自定义变量存储的索引,来获取数组的单元数据信息,只能获取索引别的不能获取
只有for…in需要转化
在这里插入图片描述 for循环、 forEach()循环、 for…in循环,针对数组而言,都可以完成我们的需求,只是针对不同的情况,推荐使用 forEach() 最简单最方便, for循环的优点是,可以控制循环的起始和结束, for…in一般是针对对象的循环。