js中for循环中i++写在代码块中和写在括号中的区别是什么?

作者站长头像
站长
· 阅读数 14

描述

for循环是最基础的知识点,但是多年后发现我并没有吃透。常规的写法大家都理解,就不说了;但是当把i++写在代码块中时,发现多执行了一次,这是为什么,哪位大神能否讲解下。

js中for循环中i++写在代码块中和写在括号中的区别是什么?从上图中可以看出,结果多输出了一次。另外第一次也是输出三次,但是最后一个是undefined的,开始我以为是i访问不到了,返回的undefined的,结果不是,看下面截图js中for循环中i++写在代码块中和写在括号中的区别是什么?我输出i的时候,加了个前缀,结果是没有的,说明输出的不是console.log的内容,说明这是for的输出,下面也证明了js中for循环中i++写在代码块中和写在括号中的区别是什么?直接一个空的for也有undefined

问题

  1. i++写在代码块中为什么会多执行一次?
  2. 那个undefined是从哪输出的?

补充

本来计算下面的情况,熬夜熬猛了,忘了等于的情况了,我说for怎么突然和我的理解不一致了[捂脸]

const aa = ["0", "1", "2", "3", "4", "5"];
for (let i = 0,len=aa.length; i < len; i = Math.min(i + 5, len)) {
  let list = aa.slice(i, i + 5);
  console.log(list);
}
回复
1个回答
avatar
test
2024-07-04

没有多执行吧,最后一个1是返回值

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容