这篇文章主要探讨了For循环中分号隔开的3部分的执行顺序,需要的朋友可以参考下
引发这个问题思考的是一段js程序的运行结果:
 
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;

从这段程序中我们可以看出,i在a函数返回的时候值是20这是没有问题的。
而在b函数返回的时候,i的值是20还是21就值得讨论了。
问题的本质即:先进行了判断i<3,还是先进行了i++,再判断是否i<3.

根据执行的结果可以看出,是先执行了i++的。
 
function a(){
for(i=0;i<20;i++){
// 没有 var i
//这里的i就是全局变量所有人可以访问
}
}
function b(){
for(i=0;i<3;i++){
//alert(i);//同理这里的i也是全局变量,返回0且只有一次返回
a();//这个函数返回是i=20
//当i=20 经过 i++后 i=21 那么就不符合i<3的条件,直接退出。所以return i=21 这很正常!
}
return i;
}
var Result = b();

在此我们补完for循环的执行顺序:
以下面程序为例
 
for(int i=0;i<10;i++)
{
}

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



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

语句 2 定义运行循环(代码块)的条件

语句 3 在循环(代码块)已被执行之后执行
最新资讯
拍拍贷正式更名为信也科技 前三季净利近6亿元降逾7%

拍拍贷正式更名为信也

11月19日,美股上市金融科技公司拍拍贷(NYSE:PPDF)发布了20
金立新增两条被执行人信息 涉及金额约1.87亿元

金立新增两条被执行人

根据天眼查的信息显示,11月18日,深圳市金立通信设备有限
途牛第三季度净营收8.5亿元 高于市场预期

途牛第三季度净营收8.

途牛2019年第三季度净营收为8.525亿元人民币,市场预期
滴滴副总裁郄小虎:很快在上海推出自动驾驶叫车服务

滴滴副总裁郄小虎:很快

据国外媒体报道,滴滴出行副总裁、网约车部门CTO郄小虎
威马汽车计划半年内完成10亿美元D轮融资

威马汽车计划半年内完

威马汽车首席战略官鲁珀特·米切尔(Rupert Mitchell)今
滴滴顺风车明日3城市试运营 北京延缓至12月

滴滴顺风车明日3城市

11月20日上午9点,滴滴顺风车将在哈尔滨、太原、常州3个
最新文章
微信小程序调用天气接口并且渲染在页面过程详解

微信小程序调用天气接

这篇文章主要介绍了微信小程序调用天气接口并且渲染在
Electron + vue 打包桌面操作流程详解

Electron + vue 打包

这篇文章主要介绍了Electron + vue 打包桌面操作流程,
前端Vue项目详解--初始化及导航栏

前端Vue项目详解--初

这篇文章主要介绍了前端Vue项目详解--初始化及导航栏,
ES6 Object方法扩展的应用实例分析

ES6 Object方法扩展的

这篇文章主要介绍了ES6 Object方法扩展的应用,结合实
JS实现给数组对象排序的方法分析

JS实现给数组对象排序

这篇文章主要介绍了JS实现给数组对象排序的方法,结合
基于vue+axios+lrz.js微信端图片压缩上传方法

基于vue+axios+lrz.js

这篇文章主要介绍了基于vue+axios+lrz.js微信端图片压