先来个for循环的例子:
var i=0,j=0; for(;i<10,j<6;i++,j++){ k=i+j; }
console.log(k)
想知道会输出什么,首先得知道完整循环了多少次,想知道完整循环了多少次,就得知道条件的判断,经过我的测试,得到了这么结果:
第一个 ; 和 第二个 ; 之间的代码是条件( for循环里的条件是被 两个分号包围的)这个你知道,如果只有一个条件就以这一个条件为准,如果有多个条件,直接以最后个逗号后面的条件为准,看例子验证
var i=0,j=0; for(;j<6;i++,j++){ k=i+j; }
console.log(k)
然后两个例子都运行下,得到的结果一样,是不是心里在想,条件里的 i <10 屁用都没有,鬼管你是false还是true,最后的条件才是真正的黑手推动着循环,我还是不信,接着:
//变量初始值
var i=0,j=0,h=0; for(;i<-1,j<-1,h<6;i++,j++,h++){ k=i+j+h; } console.log(k) /*************************/
//变量初始值
var i=0,j=0,h=0; for(;h<6;i++,j++,h++){ k=i+j+h; }
console.log(k)
果然还是一样,这样就验证了最初说的那句:第一个 ; 和 第二个 ; 之间的代码是条件 这个你知道,如果只有一个条件就以这一个条件为准,如果有多个条件,直接以最后个逗号后面的条件为准
既然知道真正的条件了,就知道真正的完整的循环次数,还是看第一个例子吧:
var i=0,j=0; for(;j<6;i++,j++){
// console.log(i)
// console.log(j)
k=i+j; } console.log(k)
循环完整次数 = 6 - 0 = 6次
循环的首次k值 = 0+0 ; 还剩 5 次都是完整的循环 就有 ++ 的过程 k的值= i + j, i 和 j 在第6次时分别是 5 和 5,第(6-0)+1 = 7次 是循环体的条件里false了,退出循环体,i的值定格在5,j的值也定格在5,那么k的值就定格在5+5 = 10了
javasript-for循环的更多相关文章
-
【.net 深呼吸】细说CodeDom(8):分支与循环
有人会问,为啥 CodeDom 不会生成 switch 语句,为啥没生成 while 语句之类.要注意,CodeDom只关心代码逻辑,而不是语法,语法是给写代码的人用的.如果用.net的“反编译”工具 ...
-
Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
-
Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
-
模仿Linux内核kfifo实现的循环缓存
想实现个循环缓冲区(Circular Buffer),搜了些资料多数是基于循环队列的实现方式.使用一个变量存放缓冲区中的数据长度或者空出来一个空间来判断缓冲区是否满了.偶然间看到分析Linux内核的循 ...
-
如何理解javaSript中函数的参数是按值传递
本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...
-
【JS基础】循环
for 循环的语法: for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被 ...
-
【python之路4】循环语句之while
1.while 循环语句 #!/usr/bin/env python # -*- coding:utf-8 -*- import time bol = True while bol: print '1 ...
-
To Java程序员:切勿用普通for循环遍历LinkedList
ArrayList与LinkedList的普通for循环遍历 对于大部分Java程序员朋友们来说,可能平时使用得最多的List就是ArrayList,对于ArrayList的遍历,一般用如下写法: p ...
-
JavaScript单线程和浏览器事件循环简述
JavaScript单线程 在上篇博客<Promise的前世今生和妙用技巧>的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...
-
.NET基础 一步步 一幕幕[循环、逻辑语句块]
循环.逻辑语句块 好久不写博客了,断更了好几天了,从上周五到今天,从北京到上海,跨越了1213.0公里,从一个熟悉的城市到陌生的城市,还好本人适应力比较好,还有感谢小伙伴的接风咯,一切都不是事,好 ...
随机推荐
-
Hyper-V无法文件拖拽解决方案~~~这次用一个取巧的方法架设一个FTP来访问某个磁盘,并方便的读写文件
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...
-
编译错误:/usr/bin/ld: cannot find -lz
编译时出现错误/usr/bin/ld: cannot find -lz,安装zlib和zlib-devel yum install zlib yum install zlib-devel
-
android Handler机制详解
简单运行图: 名词解析: Message(消息):定义了一个包含描述以及随意的数据对象可以被发送到Hanlder的消息,获得消息的最好方法是Message.obtain或者Handler.o ...
-
Backbone源码解析(四):View(视图)模块
View视图故名思义,它控制的是界面.我们可以把一个大的网页分成很多部分的视图,按照backbone的架构,每一个视图对应都是一个对象,我们可以通过元素的钩子(id或者class或者其他选择器)把它们 ...
-
IOS第五课——Gesture and TableView
这一次我们要学习Gesture.TableView.AlertView三种技术. 一.Gesture 在iOS中,可以使用系统内置的手势识别(GestureRecognizer),也可以创建自己的手势 ...
-
Linux课程实践一:Linux基础实践(基础操作)
一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...
-
高效的使用STL
高效的使用STL 仅仅是个选择的问题,都是STL,可能写出来的效率相差几倍: 熟悉以下条款,高效的使用STL: 当对象很大时,建立指针的容器而不是对象的容器 1)STL基于拷贝的方式的来工作,任何需要 ...
-
傲娇Android二三事之操蛋的开发日记(第一回)
武宗元年 十一月初四 霾 今日魔都,依旧仙雾环绕,仿佛蓬莱落凡尘.望着470这个鲜红的AQI修仙指数,贫道不禁吟道,“正是修仙好光景,雾霾时节又逢君”.但在这个只修bug,不修仙的时代,路上的行人都步 ...
-
PYTHON线程知识再研习G--线程间通信Event
很多时候,线程之间会有互相通信的需要.常见的情形是次要线程为主要线程执行特定的任务,在执行过程中需要不断报告执行的进度情况.前面的条件变量同步已经涉及到了线程间的通信(threading.Condit ...
-
链接器工具错误 LNK1123
由于新学C++变成,找不到人求教,所以这个问题困扰了我很久,今天终于找到终极解决方案了: 出处,此帖25楼: http://bbs.csdn.net/topics/390121452 终极解决方案:V ...