一、for中的表达式

①短路表达式

a && b是表达式:当执行的时候如果表达式a结果不是0,就会执行表达式b。如果表达式a执行的结果是0,表达式b不执行

i++++i的不同

++i && k++:第一步:i先自己加1,赋给自己(代号i)。第二步:(代号i)与k(这时没自加)进行并运算。第三步:k才自加1
i++ && k++:第一步:i(这时没自加)和k(这时没自加)进行并运算。第二步:i才自己加1。第三步:k才自加1
i++++i的不同:当他们和其他表达式混合时。
++i先自加1,然后其他表达式(这里&&)i++先其他表达式(这里&&),再自加1。

//同If语句一样,`仅控制一条语句`,因此要注意`{}`和`;`的使用
  for(var i = 0,k=0; i < 6; i++ && k++) console.log(i,k) ;console.log("汉子")
==for(var i = 0,k=0; i < 6; i++ && k++) {console.log(i,k) }console.log("汉子")
==for(var i = 0,k=0; i < 6; i++ && k++) {console.log(i,k); }console.log("汉子")
/*
0 0
1 0
2 1
3 2
4 3
5 4
汉子
*/
//过程一:i = 0,k=0:二:然后 i=0 小于6:三:打出来i=0 k=0四:!!i++&&k++  (i为0,(执行&&看出)不执行右面表达式, i自加1为1,不执行右面表达式k=0)
//过程二:i = 1,k=0:二:然后 i=0 小于6:三:打出来i=1 k=0四:!!i++&&k++  (i为1,(执行&&看出)执行右面表达式, i自加1为2,执行右面表达式k自加1为1)
//过程三..
for(var i = 0,k=0; i < 6; ++i && k++) console.log(i,k)
/*
0 0
1 1
2 2
3 3
4 4
5 5
*/
//过程一:i = 0,k=0:二:然后 i=0 小于6:三:打出来i=0 k=0四:!!++i&&k++  (i为0,i自加1为1,(执行&&看出)执行右面表达式, ,不执行右面表达式k自加1为1)
//过程二:i = 1,k=1:二:然后 i=0 小于6:三:打出来i=1 k=1四:!!++i&&k++  (i为1,i自加1为2,(执行&&看出)执行右面表达式, ,不执行右面表达式k自加1为2)
//过程三..

准备一

这段转自:http://blog.sina.com.cn/s/blog_af28a75a0101hii9.html

 for循环的执行顺序用如下表达式:

for(expression1;expression2;expression3)
 {
            expression4;
 }

      执行的顺序应该是:

1)第一次循环,即初始化循环。

      首先执行表达式expression1(一般为初始化语句);再执行expression2(一般为条件判断语句),判断expression1是否符合expression2的条件;如果符合,则执行expression4,否则,停止执行;最后执行expression3。

2)第N(N>=2)次循环

      首先执行expression2,判断在expression3是否符合在expression2要求;如果符合,则继续执行在expression4,否则,停止执行。最后执行在expression3。如此往复,直至expression3不满足在expression2条件是为止。

总结:

      总的来说,执行的顺序是一致的。先条件判断(expression2),再函数体执行(expression4),最后for执行(expression3)。往复......区别在于,条件判断的对象。第一次判断时,对象为初始化语句(expression1),后续的判断对象为执行后的结果(expression3)。

准备二

转:http://blog.sina.com.cn/s/blog_96ea9c6f010176mi.html

1,For语句同If语句一样,仅控制一条语句,因此要注意{}和;的使用

2,如上图的两层for循环,内层for循环的控制区域为绿色框内;外层For循环的控制区域为紫色框内;B块代码不受For循环影响,在外层For循环退出时,执行。

上图中For循环的执行顺序如下:

javascript:算法之for循环的更多相关文章

  1. 【原】小搞一下 javascript算法

    前言:在前端大全中看到这句话,以此共勉.基础决定你可能达到的高度, 而业务决定了你的最低瓶颈 其实javascript算法在平时的编码中用处不大,不过不妨碍我们学习它,学习一下这些算法的思想,锻炼一下 ...

  2. javascript算法汇总(持续更新中)

    1. 线性查找 <!doctype html> <html lang="en"> <head> <meta charset="U ...

  3. SharePoint 自定义的列表页面中添加javascript的一个 For循环语句后,该页面就打不开了。

    一个sharepoint 2013的普通的列表的自定义新建页面,我在其中新添加几行javascript代码后页面就打不开了.如图所示: 真是一言不合,友谊的页面说打不开就打不开啊.后来慢慢比对发现是因 ...

  4. JavaScript 中 for in 循环和数组的问题

    本文由 伯乐在线 - ElvisKang 翻译,进林 校稿.未经许可,禁止转载!英文出处:adripofjavascript.com.欢迎加入翻译小组. JavaScript的for…in循环用于迭代 ...

  5. JavaScript算法题之–随机数的生成

    JavaScript算法题之–随机数的生成 需求描述:从一组有序的数据中生成一组随机并且不重复的数,类似于简单的抽奖程序的实现. 先来生成一个有序的数组: 1 var arr = [], 2      ...

  6. JavaScript算法与数据结构知识点记录

    JavaScript算法与数据结构知识点记录 zhanweifu

  7. 深入理解javascript中的事件循环event-loop

    前面的话 本文将详细介绍javascript中的事件循环event-loop 线程 javascript是单线程的语言,也就是说,同一个时间只能做一件事.而这个单线程的特性,与它的用途有关,作为浏览器 ...

  8. [译]Javascript中的for循环

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  9. [译]Javascript中的do-while循环

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

随机推荐

  1. css动画 animation

    今天用css做了一个简单的三角上下移动的一个小动画,说白了就是在改变该物体的height值.除了这个方法,还可以用js. 一.在用css写动画时,一定要记住兼容性问题.如何解决该兼容性?在前面加内核前 ...

  2. 引用项目外dll时不显示注释的解决方案

    在引用项目外的dll时,显示类库中的注释可按以下步骤: 方法或变量用summary添加注释,如:         /// <summary>发送post请求         /// < ...

  3. js 连续赋值。。理解不了,先占坑

    http://www.cnblogs.com/xxcanghai/p/4998076.html

  4. javascript的window.ActiveXObject对象,区别浏览器的方法

    (window.ActiveXObject)的作用,用来判断浏览器是否支持ActiveX控件,如果支持ActiveX控件,我们可以利用var xml=new ActiveXObject("M ...

  5. 个人Win10 +archlinux安装笔记

    win10+archlinux 1.查看磁盘并分区并挂载1.1 分区/dev/sda1 WIN10 保留分区/dev/sda2 WIN10 ESP分区(EFI)/dev/sda3 WIN10 MSR分 ...

  6. C# 获取时间差状态

    /// <summary> /// 根据时间获取时间状态 /// </summary> /// <param name="dt"></pa ...

  7. WebView基本使用

    WebView mWebView; ProgressBar mProgressBar; mProgressBar = (ProgressBar) findViewById(R.id.news_prog ...

  8. 【Java EE 学习 43】【SVN版本控制工具】【CVS版本控制工具】

    一.SVN SVN服务器下载地址:https://subversion.apache.org/ 1.什么是版本控制:版本控制是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程.是一种记录若 ...

  9. node+fis3搭建

    node安装: 到https://nodejs.org/en/download/releases下载编译好的包, 如:https://nodejs.org/download/release/v4.4. ...

  10. 图像缩放_OpenCv

    图像缩放是一种比较简单的图像处理操作,这里给出opencv中的代码, opencv的版本C语言接口 int resize_c() { const char *pstrImageName = " ...