这篇文章主要探讨了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 在循环(代码块)已被执行之后执行
最新资讯
美法官驳回苹果侵权案重审申请:被判赔偿5亿美元

美法官驳回苹果侵权案

VirnetX在2012年起诉苹果的VPN on Demand技术以及面向
苹果正式发邀请函:9月12日新园区举办秋季发布会

苹果正式发邀请函:9月1

苹果公司刚刚正式向媒体发出邀请函,宣布将于美国当地时
蔚来汽车路演PPT曝光:对标特斯拉 已交付1381辆车

蔚来汽车路演PPT曝光:

蔚来汽车路演PPT显示,蔚来汽车对标特斯拉、奔驰、奥迪
贝索斯每年只从亚马逊领8万工资?美股年报该这么挖

贝索斯每年只从亚马逊

文/keykey7来源:一千二百字(word1200)“首富”贝索斯每年
这届高盛帮水逆了

这届高盛帮水逆了

六经注我,还是我注六经?
草根互联网经理掀起的中国性解放运动

草根互联网经理掀起的

中国一代互联网产品经理以把握人性作为最大的追求,十多
最新文章
详解NodeJs开发微信公众号

详解NodeJs开发微信公

本篇文章给大家分享了NodeJs开发微信公众号的相关技术
详解webpack4多入口、多页面项目构建案例

详解webpack4多入口、

这篇文章主要介绍了详解webpack4多入口、多页面项目构
Vue仿支付宝支付功能

Vue仿支付宝支付功能

这篇文章主要介绍了Vue仿支付宝支付功能,非常不错,具有
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】

jquery ajaxfileuplod

点击一次上传, 当上传操作结束后才能操作界面,实现方式
JavaScript继承与多继承实例分析

JavaScript继承与多继

这篇文章主要介绍了JavaScript继承与多继承,结合实例
使用javascript做在线算法编程

使用javascript做在线

这篇文章主要介绍了使用javascript做在线算法编程的相