for (语句 1; 语句 2; 语句 3) {
循环体
}
let i = 0;
function fun (i) {
console.log(i, '语句2:判断是否执行')
return i < 3
}
for (console.log(i, '语句1:全部循环开始前');fun(i);console.log(i++,'语句3:执行之后')) {console.log(i, '循环体:执行')};
0 "语句1:全部循环开始前"
0 "语句2:判断是否执行"
0 "循环体:执行"
0 "语句3:执行之后"
1 "语句2:判断是否执行"
1 "循环体:执行"
1 "语句3:执行之后"
2 "语句2:判断是否执行"
2 "循环体:执行"
2 "语句3:执行之后"
3 "语句2:判断是否执行"
可以发现执行顺序为:
1.语句1
(只执行一次)
2.不断循环语句2
、循环体
、语句3
3.直到语句2
中的判断结果为false
语句
中可以用逗号
分隔需要执行的每行代码,例如上方代码的语句2
可改为:
console.log(i, '语句2:判断是否执行'), i < 3;
结果相同。
语句1
一般用来初始化需循环的变量,例如:let i = 0
语句2
一般用来限制变量递增的极限值,例如:i < 3
语句3
一般用来做变量递增,例如:i ++
但这些语句
位置上的代码都可以用其他代码替换,甚至为空:
var i = 0;
var len = cars.length;
for (; i < len; ) {
text += cars[i] + "<br>";
i++;
}
唯一一定的只有语句
和循环体
的执行顺序:
1.语句1
;
2.语句2
,循环体
,语句3
…
3.语句2
。