描述
for循环是最基础的知识点,但是多年后发现我并没有吃透。
常规的写法大家都理解,就不说了;但是当把i++写在代码块中时,发现多执行了一次,这是为什么,哪位大神能否讲解下。
从上图中可以看出,结果多输出了一次。
另外第一次也是输出三次,但是最后一个是undefined的,开始我以为是i访问不到了,返回的undefined的,结果不是,看下面截图
我输出i的时候,加了个前缀,结果是没有的,说明输出的不是console.log的内容,说明这是for的输出,下面也证明了
直接一个空的for也有undefined
问题
- i++写在代码块中为什么会多执行一次?
- 那个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是返回值