javascript中for循环中你不可不知道的秘密

s: 这里的for循环指的是js的语言哦...

for循环的构成结构;

 代码如下 复制代码
var i;//为什么要在这定义呢? 请看jQuery源码
for(i=0; i<10; i++){
    //这里是循环的block
}

这是一个很普通的"女子", 但你真的了解她吗? 下面分下域:

红色: 定义块
绿色: 判断块
蓝色: 计算块
粉色: 执行块
ps: 名是我起的啊, 不是官网的
那么她们的执行顺序是怎么样呢?
for循环的执行顺序
修改代码为:

 代码如下 复制代码
var i;//为什么要在这定义呢? 请看jQuery源码
for(i=0,console.log("红色块: "+ i); console.log("绿色块: "+ i),i<3; console.log("蓝色块: "+ i),i++){
    console.log("粉色块: "+ i)
    //这里是循环的block
}

控制台运行结果为:

然而如果条件不成立则:

如果执行块有break,continue关键字则:


看结果得到以下规则:

执行顺序为:
红色 -> 绿色 -> 粉色 -> 蓝色
定义块 -> 判断块 -> 执行块 -> 计算块
规则为:
红色定义块: 用来定义 变量(指的是循环的标识, 如:i), 只执行一次, 执行完后进到下一步
绿色判断块: 用来判断条件是否成立, 如果成立则进行下一步, 不成立则退出整个循环
粉色执行块: 用来执行代码, 如果有break则不执行下面代码, 且不进行下一步, 如果有continue则不执行下面代码, 进行下一步
蓝色计算块: 用来计算变量, 如++,--
ps: 不要被++i, i++的坑绊倒啊
奇葩的for循环

 代码如下 复制代码

//定义块无内容
var i = 0,
    len = 10;//data.length
for(; i<len; i++){
    console.log(i)
}

//定义,计算块无内容
var i = 0,
    len = 10;
for(; i<len;){
    console.log(i++);//知道了for循环执行顺序这还不是小菜菜吗?
}

//居然还这样... *_*
var i = 0,
    len = 10;
for(; ;){
    console.log(i);
    if(++i >= 10){
        break;
    }
}

//感觉还不如while
var i = 0;
while(i < 10){
    console.log(i++);
}

你有没有感觉对for有点新认识?

时间: 2024-10-24 02:36:18

javascript中for循环中你不可不知道的秘密的相关文章

JavaScript在for循环中绑定事件解决事件参数不同的情况

响应一堆相似的事件,但是每个事件的参数都不同,在这种情况下就可以使用JavaScript 在for循环中绑定事件,下面有个不错的示例,大家可以参考下 有时候要对响应一堆相似的事件,但是每个事件的参数都不同,一开始还以为挺简单的,用个for循环不就得了,结果发现,额,都是使用了最后一个参数...  上网查资料!!!结果大神说用闭包解决  代码:  代码如下: for(var i=0;i<10;i++){  btns[i].onclick=(function(i){  return function

解密美军:连总统都不知道的秘密项目

   你知道吗?有时候,即使你坐在美国总统的位置,有些事,还是不能告诉你!而且,不仅是不能告诉你,还得是"毫无限制的经费预算"."完全自由的研究进度",甚至是"彻底的纵容"的去执行的!      这些连总统都不能说得太详细."管不着"的美军秘密项目,大部分来自位于内华达州的,美国最神秘的军事禁区--51区.在美国一名具有"调查精神"的记者安妮·雅各布森,长达数年的调查整理,悄然挖掘负责.参与这些项目的科学家

JavaScript在for循环中绑定事件解决事件参数不同的情况_javascript技巧

有时候要对响应一堆相似的事件,但是每个事件的参数都不同,一开始还以为挺简单的,用个for循环不就得了,结果发现,额,都是使用了最后一个参数... 上网查资料!!!结果大神说用闭包解决 代码: 复制代码 代码如下: for(var i=0;i<10;i++){ btns[i].onclick=(function(i){ return function(){alert(i)} })(i) } 大概原因是直接用btns[i].onclick=function(){alert(i)}时,JavaScri

PHP中foreach循环中使用引用要注意的地方_php技巧

复制代码 代码如下: foreach ($array as &$row) { $row = explode('/', $row); } foreach ($array as $row) { //do something } 这么写,在第二个循环会出逻辑错误,加入第二个循环中do something的地方是输出$row,循环到最后一个的时候的输出是倒数第二个元素,而不是最后一个 要这么写 复制代码 代码如下: foreach ($array as &$row) { $row = explod

抓住痛点细分用户 小众APP成长中不得不知道的秘密

因为上课经常忘记课表,两年前还在念大二的广州大学生余佳文在找寻不到合适的软件后,自己动手做了一款超级课程表APP:同样是两年前,清华博士申磊也因朋友们经常遇到学习.工作等烦恼,交际圈受限无人可倾诉,他便创建了校园互助社区的师兄帮帮忙.尽管创业者切入的都是相对小众的大学生群体,但投资人对其的热度却不小.比如,师兄帮帮忙近期获得了薛蛮子(微博)等的天使投资,很快又引来IDG的A轮青睐.而上月初,曾获得天使投资的超级课程表也宣布获得A轮融资. 面对微博.微信等大众型APP,触及小众用户如大学生.老年人

Java中for循环中执行顺序问题及break, continue用法

问题|循环|执行 最近在机子上装了jdk1.4.2,装了编辑器Eclipse3.0.1,用后感觉Eclipse确实很好用,特别是参数提示功能.网上的java资源也还不少,看了<thinking in java>中文版前几章,记点问题与发现在这里:1. for循环的一个问题for(int i=1, j=i+10 ; i<5; i++ , j=i*2)System.out.println("i="+i+" j="+j); 运行结果:i=1 j=11i=

告诉你一定不知道的秘密:机器人已经可以登台表演魔术了!

2017年9月26日,在温哥华举办的第三十届IROS大会进入正会第二天.这一天还是大会的比赛日,除了抓取与模拟竞赛.无人机飞行竞速,还进行了人形机器人竞赛. 在IROS上的人形机器人比赛已经进行到第五届,主题是机器人魔术(Robot Magic),由参赛者和机器人一同表演魔术,这与本次大会的"Friendly people,Friendly Robots"恰好一致.评委从技术角度和表演性两个维度分5个指标为魔术表演进行评分选出最终的优胜者,这5个指标分别是: 技术复杂程度(30%):机

百度云你所不知道的秘密

又是一大波大片即将来袭,<超凡蜘蛛侠>.<超验骇客>.<里约大冒险2>等多部大片即将来临.是对于大多数宅男腐女来说,去电影院观看电影可不是他们的首选,通过视频软件下载各种高清电影已经是很多年轻人的首选方式. 对于下载免费电影的人们来说,迅雷.快播与百度影音等软件肯定是首选必备的神器,但是随着技术的发展,云播放的技术已经不在是幻想.在百度云种类繁多的应用中就存在这种让众多宅男腐女兴奋到爆的功能. 百度云网盘中的离线下载功能其实就是利用云服务将服务器中众多的资源进行整合推送

CIO不得不知道的“秘密”

对于IT专业人员来说,远程办公往往被视为最棒的工作方式之一.这种方式不仅为员工提供了足够的灵活性和安静的工作环境,还帮助老板既节省了经费,又扩大了雇佣员工的选择范围. 然而尽管如此,在家办公却并非一件简单的事情.对于远程工作者来说,他们既要有足够的自我激励能力,还要有必要的技术支持(例如因特网连接和 VPN 网络),同时还需要有可以在远程完成的.定义明确的工作任务. 但是很多时候,IT主管并没有意识到那些会影响生产力和团队士气的关键问题.管理者往往会犯下痛苦.昂贵甚至致命的错误.因此,如果你正处