为何JavaScript的for循环会输出数组的全部元素(包含首个元素)?
为什么你的for循环会从数组第一个元素开始输出?
嘿,我来帮你把这个疑惑捋清楚~核心问题其实出在你对for循环的执行顺序理解上,咱们一步步拆解来看:
首先,先明确标准for循环的执行流程,它是严格按照固定顺序来运行的:
for (初始化表达式; 条件判断表达式; 递增/递减表达式) { 循环体代码 }
具体到你的代码,执行步骤是这样的:
- 第一步(仅执行一次):运行初始化表达式
var i=0,此时变量i被设置为0,这是循环启动的初始状态。 - 第二步:检查条件判断表达式
i<arr.length——此时i=0,数组长度是5,0<5成立,于是进入循环体。 - 第三步:执行循环体里的
console.log(arr[i]),也就是输出arr[0],也就是数组的第一个元素1。 - 第四步:循环体执行完毕后,才会运行递增表达式
i++,这时候i才从0变成1。 - 接下来回到第二步,重复判断→执行循环体→递增的流程,直到
i=5时,5<5不成立,循环才停止。
你之前的误解是以为i++会在循环体执行前就触发,但实际上for循环的递增操作是在每次循环体跑完之后才会执行的。
如果把你的代码等价拆成while循环的形式,会更直观:
var arr = [1,2,3,4,5]; var i = 0; // 对应for循环的初始化 while(i < arr.length) { // 对应for循环的条件判断 console.log(arr[i]); // 循环体 i++; // 对应for循环的递增,在循环体之后执行 }
这样是不是就明白为什么会从1开始输出,直到5了?
内容的提问来源于stack exchange,提问作者Aditya
相关产品推荐
相关产品推荐

