for语句

for语句也是一种前测试循环语句,但它具有在执行循环之前初始化变量和定义循环后要执行的代码的能力。下面是for语句的语法:

for (initialization; expression; post-loop-expression) statement

下面是一个示例:

var count = 10;
for (var i = 0;i < count; i++){alert(i);
}

上面的代码定义了变量i的初始值为0.只有当条件表达式(i<count)返回true的情况下才会进入for循环,因此也有可能不会执行循环体中的代码。如果执行了循环体中的代码,则一定会对循环后的表达式(i++)求值,即递增i的值。这个for循环语句与下面的while语句的功能相同:

var count = 10;
var i = 0;
while(i < count){alert(i);i++;
}

使用while循环做不到的,使用for循环同样也做不到。也就是说,for循环只是把与循环有关的代码集中在了一个位置。
在for循环的变量初始化表达式中,也可以不使用var关键字。该变量的初始化可以在外部执行,例如:

var count = 10;
var i;
for (i = 0; i<count; i++){alert(i);
}

以上代码在循环初始化表达式中声明变量的效果是一样的。由于ECMAScript中不存在块级作用域,因此在循环内部定义的变量也可以在外部访问到。例如:

var count = 10;
for (var i = 0; i < count;i++){alert(i);
}
alert(i);      //10

在这个例子中,会有一个警告框显示循环完成后变量i的值,这个值时10。这是因为,即使i是在循环内部定义的一个变量,但在循环外部仍然可以访问到它。

此外,for语句中的初始化表达式,控制表达式和循环后表达式都是可选的,将这三个表达式全部省略,就会创建一个无限循环,例如:

for (;;){     //无限循环doSomething();
}
//而只给出控制表达式实际上就把for循环转换成了while循环,例如:
var count = 10;
var i = 0;
for (; i<count; ){alert(i);i++;
}

for-in语句

for-in语句是一种精准的迭代语句,可以用来枚举对象的属性。下面是for-in语句的语法:

for (property in expression) statement

下面是一个示例:

for (var proName in window) {document.write(propName);
}

这个例子中,使用for-in循环来显示了BOM中window对象的所有属性。每次执行循环时,都会将window对象中存在的一个属性名赋值给变量propName。这个过程会一直持续到对象中的所有属性都被枚举一遍为止。与for语句类似,这里控制语句中的var操作符也不是必需的。但是为了保证使用局部变量,我们推荐上面例子中的这种做法。

ECMAScript对象的属性没有顺序。因此,通过for-in循环输出的属性名的顺序是不可预测的。具体来说,所有属性都会被返回一次,但返回的先后次序可能会因浏览器而异。

但是,如果表示要迭代的对象的变量值为null或undefined,for-in语句会抛出错误,ECMAScript5更正了这一行为;对这种情况不再抛出错误,而只是不执行循环体。为了保证最大限度的兼容性,建议在使用for-in循环之前,先检测确认该对象的值不是null或undefined

for语句和for-in语句相关推荐

  1. 转:delphi异常捕获try except语句 和 try finally语句用法

    转:http://www.java123.net/v/936977.html      2015-06-24 09:27:48 一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来 ...

  2. 【Java】面试官灵魂拷问:if语句执行完else语句真的不会再执行吗?

    写在前面 最近跳槽找工作的朋友确实不少,遇到的面试题也是千奇百怪,这不,一名读者面试时,被面试官问到了一个直击灵魂的问题:if 语句执行完else语句真的不会再执行吗?这个奇葩的问题把这名读者问倒了! ...

  3. R语言嵌套的ifelse语距:将一条If语句放在另一条If语句中,该语句作为嵌套的If else调用。If else语句允许我们根据表达式结果(TRUE或FALSE)打印不同的语句,执行不同的语句块

    R语言嵌套的ifelse语句:将一条If语句放在另一条If语句中,该语句作为嵌套的If else调用.If else语句允许我们根据表达式结果(TRUE或FALSE)打印不同的语句,执行不同的语句块 ...

  4. sqlserver中能用when_sqlserver中if语句顶替when.case.语句

    sqlserver中if语句替代when...case..语句 create table Employees ( EmployeeID char(6) primary key not null, Na ...

  5. mysql等价语句是_Mysql基本语句(个人笔记)

    mysql基本操作语句 1 数据库的基本操作 create database doem default charset utf8; -- 创建数据库 字符编码 utf8 show database; ...

  6. python中用来占位的语句是_python占位语句

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python pass语句 阅读本文需要0.5分钟 python pass 语句 ...

  7. continue语句只用于循环语句中_循环里continue,break,return的作用,你知道吗?

    循环里continue,break,return的作用,你知道吗?​mp.weixin.qq.com 前言 循环里Continue,Break,Return经常会用到,也是很容易出错的一个坑,今天特地 ...

  8. python可以用break作为变量名_Python初体验(一)—【配置环境变量】【变量】【input】【条件语句】【循环语句】...

    写在前面的: 作为一个控制专业的女研究生,不知道每天在研究什么,但总归逃脱不了码代码的命运.之前也学习过一些C语言.C++,基础嘛,稍稍微有一些.本不想走上码农的道路,天真烂漫的过此生(白日梦过程中. ...

  9. oracle数据定义语句,oracle(sql)基础篇系列(3)——数据维护语句、数据定义语句、伪列...

    oracle(sql)基础篇系列(三)--数据维护语句.数据定义语句.伪列 DML语句 insert 向表中插入新的记录 --三种插入方式 --(1)不写字段的名字,直接按照字段的顺序把值逐个往里插 ...

  10. python while循环语句-Python While 循环语句

    Python While 循环语句 Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.其基本形式为: while 判断条件(cond ...

最新文章

  1. 一禁了之还是放开应用?面部识别“人红是非多”
  2. 发现一个CentOS第三方源epel的仓库地址(repos.fedorapeople.org)
  3. JS之返回字符首次出现位置的indexOf
  4. BZOJ1096-[ZJOI2007]仓库建设
  5. Tip:在使用AjaxControlTookit的控件时响应事件
  6. 修改linux引导文件系统,修改/etc/fstab文件加快Linux系统的启动速度
  7. 论文赏析[TACL19]生成模型还在用自左向右的顺序?这篇论文教你如何自动推测最佳生成顺序
  8. 集美大学计算机工程学院 曾勇进,电子政务评估方法AHP 的研究及实现.pdf
  9. BZOJ 2286 [Sdoi2011]消耗战(虚树+树形DP)
  10. 网络通信基础(入门知识总结)
  11. 2019年共享充电宝行业发展情况分析报告
  12. PHP全国快递寄件接口,1天接入四通一达,极兔,宅急送,德邦,京东,天天
  13. Android Studio实现百度地图定位(显示经纬度和地址)
  14. VS中更改exe程序图标
  15. 夜神模拟器和电脑如何互进行文件传输
  16. JMeter 常用的几种断言方法,你会几种呢?
  17. 圆周率近似计算matlab,matlab 圆周率的近似计算 实验报告.doc
  18. Tableau实用小技巧之——红绿色字体颜色设置
  19. 二进制与十进制的转换教案
  20. Django实现短信注册功能

热门文章

  1. 狄克斯特拉--最短路径问题
  2. mybatis关联查询字段重复问题
  3. Tower中国用户适配版本--cTower手机地面站3.2.3发布
  4. 浮点数的二进制表示(IEEE 754标准)
  5. python-常见的异常及处理机制
  6. 防止病毒植入U盘(思路
  7. python列表写入txt文件_Python:将 list 写入一个 txt 文件
  8. python数据保存为txt_python爬取数据保存为txt格式
  9. 论文分享 |基于知识追踪的学习者动态知识建构过程及认知项目难度建模
  10. 酷播云H5播放器自动播放与循环播放