JavaScript两种for循环写法有什么区别?为何控制台输出结果一致?
两段for循环输出一致的原因
两段代码的差异仅为循环末尾的自增写法,分别是后置自增index++和前置自增++index,输出一致的核心逻辑如下:
- for循环有固定的执行顺序,自增表达式是在循环体执行完成后才独立运行的:
- 循环启动前仅执行一次初始化:
let index = 0 - 执行条件判断
index < 5,不满足就直接退出循环 - 条件满足则先执行循环体
console.log(index) - 最后执行自增语句,再回到第二步重复判断
- 循环启动前仅执行一次初始化:
- 后置自增和前置自增的唯一区别是表达式的返回值不同:
index++返回自增前的数值,++index返回自增后的数值,但两者执行后都会让index本身的数值加1。 - 在这个for循环场景下,我们没有用到自增表达式的返回值,只是需要让index本身完成自增,所以两种写法的运行效果完全一致,输出自然相同。
举个能看出差异的场景:如果把自增写在循环体里,
console.log(index++)会先打印当前值再加1,console.log(++index)会先加1再打印,这时候两种写法的输出就会不一样了。
内容的提问来源于stack exchange,提问作者ozan kurucu
相关产品推荐
相关产品推荐

