这个问题的原因是想一个js程序的运行结果:
复制代码代码如下所示:
var I=0;
函数A(){
对于(i = 0;i < 20;i + +){
}
}
函数B(){
对于(i = 0;i < 3;i + +){
(a);
}
还我;
}
var结果b();

这个程序的结果是结果=21;

从这个程序中,我们可以看到当返回一个函数时,i的值是20,这是没有问题的。
当B函数返回时,值得讨论的是i的值是20还是21。
问题的实质是先判断我先是3,还是先做++,然后判断我是否< < 3 >。

根据执行的结果,您可以看到第一次执行了++。
复制代码代码如下所示:
函数A(){
对于(i = 0;i < 20;i + +){
无var / i
下面是所有可以访问的变量
}
}
函数B(){
对于(i = 0;i < 3;i + +){
我在这里是类似的全局变量,只有一个返回0。
(a);这个函数返回i = 20
当i = 20 + i = 21之后,不符合i < 3,直接退出的条件,所以返回i = 21是非常正常的!
}
我回来;
}
var结果b();

我们完成了执行订单周期:
以下面的过程为例
复制代码代码如下所示:
对于(int = i 0;i < 10;i + +)
{
}

首先,执行i = 0;i < 10;然后执行第一个循环循环体。
然后执行:i ++,i < 10;然后执行第二轮循环体。
直到最后i + +在i = 10之后,循环结束。

这是

语句1在循环之前执行(代码块)开始

语句2定义了运行周期的条件(代码块)

语句3在循环(代码块)被执行后执行。