一、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. C和指针 第三章 链接属性 extern、internal、none

    三种链接属性 组成一个程序有多个源文件,如果相同的标识符出现在多个源文件中,那么标识符的链接属性决定如何处理在不同文件中出现的标识符. 链接属性有三种: external:外部 多个源文件中的相同标识 ...

  2. .NET读取Excel数据,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    解决.NET读取Excel数据时,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的操作: 1. 检查本机是否安装Office Access,如果未安装去去h ...

  3. PYTHON 函数的普通参数

    # 形式参数,还没有赋值的代指参数 def kd(p): print(p) return True #实际参数,只有实际值的参数 ret = kd(") if ret: print(&quo ...

  4. 【Python基础学习五】列表,元祖,字典

    1.列表(list) 列表是Python的一种内置数据类型,list是一种有序的集合,可以随时添加和删除其中的元素,就像动态数组一样.获取list中的元素用角标获取,角标可以使用正角标,也可以使用负角 ...

  5. git 教程(15)--分支管理策略

    通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的comm ...

  6. python之路五

    内建模块 time和datetime 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现 ...

  7. js中的事件委托或是事件代理详解

    起因: 1.这是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的: 2.其实我一直都没弄明白,写这个一是为了备忘,二是给其他的知其然不知其所以然的小伙伴们以参考: 概述: 那什么叫事件委托呢?它 ...

  8. go:windows下用sublime Text搭建go语言开发环境

      一.安装   1.安装go    go安装包地址:http://pan.baidu.com/s/1hq1mrDM(进入下图中箭头所示目录中下载对应版本) * 注意go的安装路径不能包含中文    ...

  9. WCF X.509验证

    1.证书的制作 makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=ParkingServer -sky exchange -pe makecert. ...

  10. gcd推导

    欧几里得算法有性质: gcd(a, b)=gcd(b, a%b); 那么如何证明呢~ 法1: 我们先假设其成立并且有 gcd(a, b)=gcd(b, a%b)=d; a=k*b+c即a%b=c(我们 ...