Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎么会在这个循环之后10次呢?_Javascript - Fatal编程技术网

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.log
i
被分配
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
    ,因此您将遇到一个非常常见的问题。祝你好运