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


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