这篇文章主要探讨了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 在循环(代码块)已被执行之后执行
最新资讯
第一批人工智能已经下岗了

第一批人工智能已经下

叫嚣着要取代全世界的人工智能,终于在最近陷入了失业的
孙正义的出行帝国 下一个阿里巴巴在此

孙正义的出行帝国 下

马云背后的男人豪掷百亿美元砸向23家出行公司,要打造无
最后一位Siri联合创始人汤姆·格鲁伯已离开苹果

最后一位Siri联合创始

据外媒报道,苹果语音助手Siri联合创始人、人工智能专家
《王者荣耀》的电竞全球化困局

《王者荣耀》的电竞全

作为《王者荣耀》的海外版,AOV在多个国家由不同代理商
AI造梦到底是不是一笔好生意?

AI造梦到底是不是一笔

人类的梦境确实颇具神秘色彩,与梦境相关的影视作品也不
MCN选择综合症:短视频内容放谁家有钱赚?

MCN选择综合症:短视频

大量推陈出新的泛娱乐平台,让用户开始产生了“选择困难
最新文章
Angular2进阶之如何避免Dom误区

Angular2进阶之如何避

这篇文章主要介绍了Angular2进阶之如何避免Dom误区,小
使用FileReader API创建Vue文件阅读器组件

使用FileReader API创

这篇文章主要介绍了使用FileReader API创建一个Vue的
react 实现页面代码分割、按需加载的方法

react 实现页面代码分

本篇文章主要介绍了react 实现页面代码分割、按需加载
Vue项目分环境打包的实现步骤

Vue项目分环境打包的

这篇文章主要介绍了Vue项目如何分环境打包,实现方法大
vue 组件中slot插口的具体用法

vue 组件中slot插口的

这篇文章主要介绍了vue 中slot 的具体用法,包括子组件
JS遍历DOM文档树的方法实例详解

JS遍历DOM文档树的方

这篇文章主要介绍了JS遍历DOM文档树的方法,结合实例形