Javascript 我怎么会在这个循环之后10次呢?
看看这段代码,如果我在循环结束后记录Javascript 我怎么会在这个循环之后10次呢?,javascript,Javascript,看看这段代码,如果我在循环结束后记录I,I=10,但我不明白怎么做 i设置为0,然后只要i
I
,I=10
,但我不明白怎么做
i
设置为0
,然后只要i<10
就增加1,因此它在9
处停止增加。因此,在循环内的日志中,我从0到9计数,但是当我在循环终止后记录i
。它已经变成了10
我不明白从9点到10点是怎么回事
"use strict";
var foo = [];
for (var i = 0; i < 10; i++) {
console.log(i);
foo[i] = function() { return i};
}
console.log(i);
“严格使用”;
var foo=[];
对于(变量i=0;i<10;i++){
控制台日志(i);
foo[i]=函数(){return i};
}
控制台日志(i);
有人能给我解释一下吗?谢谢:)在最后一次通过循环之后,
i++
最后运行一次,因此i
是10。然后i<10
条件失败,因此循环退出。最后一行有一个console.logi
被分配10
(通过添加1),然后循环计算是否应该继续,但是i
必须超过9才能停止循环。在i=9
之后,循环将其递增为10
。然后它检查i<10
是否为false,因此您的代码将以i=10
的值退出循环
通常,循环按顺序执行
循环到达10后退出 参见条件i<10
输入错误的sry您把顺序搞错了。事情是这样的:
i<10
i
(i++
)1
因此循环结束的方式是
i++
将值上移到10
,然后检查条件。由于i
不再小于10,循环结束。尽管我确信他们以后会遇到这个问题,但这个问题并不是在闭包中使用循环变量的问题的重复。实际上不是这个问题的重复。然而,答案很简单,i++增加了i的值。一旦超出有效范围(即10,不再<10),则循环退出。然后在循环完成后显示值10。@MikeC,你是对的。循环在达到10后退出,因为10不小于10。sry这是正确的,循环在达到10后退出请参见条件i<10@LeMoi很高兴我能帮忙:)抬头!由于您在生成的函数中使用了i
,因此您将遇到一个非常常见的问题。祝你好运