# Explore the order in which the three parts of the For loop are executed separated by semicolons

• 2020-03-30 03:06:52
• OfStack

What causes this question is the result of running a js program:
``````
var i = 0;
function a(){
for(i=0;i<20;i++){
}
}
function b(){
for(i=0;i<3;i++){
a();
}
return i;
}
var Result = b();
``````

Result = 21;

And what we can see from this program is that I is going to be 20 when a returns and that's fine.
And when b returns, it's worth discussing whether I is 20 or 21.
The essence of the problem is that the judgment was made first. 3. Once again, i++ was conducted first, and then i< was judged; 3.

As you can see from the results of the execution, i++ was executed first.
``````
function a(){
for(i=0;i<20;i++){
//No var I
//The I here is the global variable that everyone can access
}
}
function b(){
for(i=0;i<3;i++){
//alert(i);// Same thing here i Also a global variable, returns 0 And only return once
a();//This function returns I =20
//When I =20 goes through I ++, I =21, then it does not conform to i<Condition of 3, exit directly. So return I =21 which is normal!
}
return i;
}
var Result = b();
``````

Here we complete the execution order of the for loop:
Take the following program as an example
``````
for(int i=0;i<10;i++)
{
}
``````

I =0; I< 10; Then execute the first round of the loop body
Then execute: i++,i< 10; Then execute a second round of the loop body
Until the last I ++ after I > =10, and the loop ends.

namely

Statement 1 is executed before the loop (block of code) begins

Statement 2 defines the conditions for running the loop (block of code)

Statement 3 is executed after the loop (block of code) has been executed

Related articles: