一、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. PHP Strom 配置less 并设置编译后在远程开发模式下自动上传css文件

    ctrl+alt+s ->File Watchers->add-> 其中Argument中的-x代表最后编译过后的css文件为压缩过的 此时就可以用了,但是编译过后less可以自动上 ...

  2. Fedora中允许mysql远程访问的几种方式

    Fedora中允许mysql远程访问,可以使用以下两种方式:a.改表. mysql>use mysql; mysql>update user set host = '%' where us ...

  3. redmine问题集锦

    当我新建LDAP认证模式时,遇到如下错误:

  4. python之路六

    面向对象 引言 提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritance)和封装(Encapsulation).Python也是一种支持OOP的动态语言, ...

  5. java获得汉语首字母

    package org.scbit.lsbi.scp.utils; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefor ...

  6. SQL查询第m条到第n条的方法

    SQL查询第m条到第n条的方法 如表名为GOOD Sselect top (n-m) * from GOODS where (某一列名) not in (select top m (某一列名) fro ...

  7. 面向切面编程AOP

    本文的主要内容(AOP): 1.AOP面向切面编程的相关概念(思想.原理.相关术语) 2.AOP编程底层实现机制(动态代理机制:JDK代理.Cglib代理) 3.Spring的传统AOP编程的案例(计 ...

  8. [转] CC 命令

    1.最基本的操作cleartool co -nc xxx.cppcleartool ci -nc xxx.cpp 2.查看自己总共co了多少文件cleartool lscheckout -cview ...

  9. python常见数据类型

    字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串烦人过程其实很简单,只需为变量分配一个值即可.例如: var = 'Hello Wor ...

  10. myeclipse eclipse 使用git插件访问github 的解决方案

    具体的步骤很多帖子都有写,这里不再赘述,需要说明的一点,git插件的版本很重要,在官网上下载的最新版本在MyEclipse8.5,MyEclipse9.1,MyEclipse10上面都没有成功. 这里 ...