先来个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循环的更多相关文章

  1. 【.net 深呼吸】细说CodeDom(8):分支与循环

    有人会问,为啥 CodeDom 不会生成 switch 语句,为啥没生成 while 语句之类.要注意,CodeDom只关心代码逻辑,而不是语法,语法是给写代码的人用的.如果用.net的“反编译”工具 ...

  2. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  3. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  4. 模仿Linux内核kfifo实现的循环缓存

    想实现个循环缓冲区(Circular Buffer),搜了些资料多数是基于循环队列的实现方式.使用一个变量存放缓冲区中的数据长度或者空出来一个空间来判断缓冲区是否满了.偶然间看到分析Linux内核的循 ...

  5. 如何理解javaSript中函数的参数是按值传递

    本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...

  6. 【JS基础】循环

    for 循环的语法: for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被 ...

  7. 【python之路4】循环语句之while

    1.while 循环语句 #!/usr/bin/env python # -*- coding:utf-8 -*- import time bol = True while bol: print '1 ...

  8. To Java程序员:切勿用普通for循环遍历LinkedList

    ArrayList与LinkedList的普通for循环遍历 对于大部分Java程序员朋友们来说,可能平时使用得最多的List就是ArrayList,对于ArrayList的遍历,一般用如下写法: p ...

  9. JavaScript单线程和浏览器事件循环简述

    JavaScript单线程 在上篇博客<Promise的前世今生和妙用技巧>的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...

  10. .NET基础 一步步 一幕幕[循环、逻辑语句块]

    循环.逻辑语句块   好久不写博客了,断更了好几天了,从上周五到今天,从北京到上海,跨越了1213.0公里,从一个熟悉的城市到陌生的城市,还好本人适应力比较好,还有感谢小伙伴的接风咯,一切都不是事,好 ...

随机推荐

  1. MongoDB journal与oplog解惑

    journal journal 是 MongoDB 存储引擎层的概念,目前 MongoDB主要支持 mmapv1.wiredtiger.mongorocks 等存储引擎,都支持配置journal. M ...

  2. node api 之:process - 进程

    process 对象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程. 因为是全局变量,所以无需使用 require().

  3. dojo:如何显示ListBox风格的选择框

    常见的选择框控件:Selelct.FilteringSelect和ComboBox都是下拉框风格,而不是ListBox风格. dojo还提供了一个dijit.form.MultiSelect控件可以解 ...

  4. NET设计模式 第二部分 创建型模式(5):原型模式(Prototype Pattern)

    原型模式(Prototype Pattern) ——.NET设计模式系列之六 Terrylee,2006年1月 概述 在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构.这 ...

  5. mac os x 安装mysql 5.7

    一 下载MySQL 访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到“MySQL Community Server”下方有一个“download” ...

  6. Java NIO通信的基础,基于TCP C/S例子介绍

    为了更好的理解Netty异步事件驱动网络通信框架,有必要先了解一点Java NIO原生的通信理论,下面将结合基于TCP的例子程序,含客户端和服务端的源码,实现了Echo流程. Java NIO的核心概 ...

  7. C#实现Google S2算法

    S2其实是来自几何数学中的一个数学符号 S²,它表示的是单位球.S2 这个库其实是被设计用来解决球面上各种几何问题的.值得提的一点是,除去 golang 官方 repo 里面的 geo/s2 完成度目 ...

  8. Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》(6)

    Vivado HLS初识---阅读<vivado design suite tutorial-high-level synthesis>(6) 1.创建工程与开启GUI 2.调试 查看关于 ...

  9. InfluxDB学习之InfluxDB的基本操作| Linux大学

    来源地址:https://www.linuxdaxue.com/influxdb-study-series-manual.html 本文属于<InfluxDB系列教程>文章系列,该系列共包 ...

  10. winform无边框窗体更改大小

    实现方式一: const int HTLEFT = 10; const int HTRIGHT = 11; const int HTTOP = 12; const int HTTOPLEFT = 13 ...