1.if语句

2.do-while语句:后测循环语句,循环体内的代码至少执行一次。

3.while语句:前测循环语句。

4.for语句:前测循环语句。

  注意:在ECMAScript中不存在块级作用域,因此在循环内部定义的变量也可以在外部访问到。

eg:

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

以上代码的执行效果是,弹出从0到9的警告框,这是for语句循环的结果,最后弹出显示10的警告框,这是for循环外的那条语句的效果,说明循环内部定义的变量也可以在外部访问到。

5.for-in语句

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

  语法:for (proerty in experssion)statement

eg:

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

  上面的例子使用for-in循环来显示BOM中window对象所有的属性。每循环一次,都会将window对象中存在的一个属性名赋值给变量propName,直到对象中的所有属性都被枚举一遍为止。

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

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

W3C:

for...in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。

JavaScript for...in 语句

for...in 语句用于对数组或者对象的属性进行循环操作。

for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。

语法:

for (变量 in 对象)
{
在此执行代码
}

“变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。

eg:

 var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW" for (var x in mycars)
{
document.write(mycars[x] + "<br />")
}

6.label语句  使用label语句可以在代码中添加标签,以便将来使用。语法:label:statement

eg:参考下面的break和cuntinue语句例子。

7.break和continue语句

  break和continue语句用于在循环中精确地控制代码的执行。break会立即退出循环,强制继续执行循环后面的语句,而continue语句虽然也是立即退出循环,但是退出循环后悔立即从循环的顶部继续执行。

eg:

 outermost:
for (var i=0;i<10;i++){
for(var j=0; j<10;j++){
if(i==5&&j==5){
break outermost;
}
num++;
}
}
alert(num);

改为continue:

 outermost:
for (var i=0;i<10;i++){
for(var j=0; j<10;j++){
if(i==5&&j==5){
continue outermost;
}
num++;
}
}
alert(num);

8.with语句:用于将代码的作用域设置到一个特定的对象中。语法:with (expression) statement;
  注意:在严格模式下不允许使用with语句。由于大量的使用with语句会导致性能下降,同时也会给调试代码造成困难,因此在大型开发应用程序时,不建议使用with语句。

9.switch语句。

  注意:(1)switch语句中可以使用任何数据类型。

     (2)switch语句在比较值时使用的是全等操作符,因此不会发生类型转换。

JS高程3.基本概念(5)语句的更多相关文章

  1. JS高程3.基本概念(4)操作符

    ECMA-262用于操作数据值的操作符包括: 算术操作符 位操作符 关系操作符 相等操作符 ECMAScript操作符的不同之处在于:它能够适用于很多值,包括字符串,数字值,布尔值,甚至是对象.(在应 ...

  2. JS高程3.基本概念(6)函数

    1.ECMAScript中的函数使用function关键字来声明. eg: function sum (num1,num2){ alert(num1+num2); } sum(3,7); 注意: 在有 ...

  3. JS高程3.基本概念(3)

    1.ECMAScript数值的范围 由于内存的限制,在大多数浏览器中,ECMAScript能够拿保存的数据的范围是 5e-324 ~ 1.7976931348623157e+308,其中最小的数值保存 ...

  4. JS高程3.基本概念(2)

    1.ECMAScript数据类型 5种简单数据类型,分别是: Undefined Null Boolean Number String 1种复杂数据类型: Object (1)typeof操作符--检 ...

  5. JS高程3.基本概念(1)

    1.语法 (1)ECMAScript中的一切(变量,函数名和操作符)都是区分大小写的. (2)标识符 标识符的第一个字符必须是字母,下划线或是美元符号. 其他字符可以是字母,下划线,美元符号和数字. ...

  6. 《JS高程》创建对象的7种方式(完整版)

    一.理解对象 ECMA-262定义对象:无序属性的集合,其属性可以包含基本值.对象或者属性. 我们可以把 ECMAScript 的对象想象成 散列表:无非就是一组 名值对,其中值可以是数据或函数. 创 ...

  7. js 高程 函数节流 throttle() 分析与优化

    在 js 高程 22.3.3章节 里看到了 函数节流 的概念,觉得给出的代码可以优化,并且概念理解可以清晰些,所以总结如下: 先看 函数节流 的定义,书上原话(斜体表示): 产生原因/适用场景: 浏览 ...

  8. 吃透Javascript数组操作的正确姿势—再读《Js高程》

    Javascript中关于数组对象的操作方法比较多也比较杂,正好再次捡起<Javascript高级程序设计>来读,把它们一一总结梳理了一下: 方法类别 方法名称 方法描述 参数 返回值 备 ...

  9. 《JS高程》事件学习笔记

    事件:文档或浏览器窗口中发生的一些特定的交互瞬间,也即用户或浏览器自身执行的某种动作. -------------------------------------------------------- ...

随机推荐

  1. android studio和eclipse中如何获取sha1值

    首先如果是eclipse的话, 直接打开eclipse开发工具 那么接下来问题来了,现在很多开发者都已经从es转型到as开发工具了, 在android studio上没有直接提供这个GUI界面让我们去 ...

  2. 【hadoop2.2(yarn)】基于yarn成功执行分布式map-reduce,记录问题解决过程。

    hadoop2.x改进了hadoop1.x的架构, 具体yarn如何工作以及改进了什么可以在网上学, 这里仅记录我个人搭建的问题和理解,希望能帮助遇到困难的朋友. 在开始前,必须了解yarn版本的ma ...

  3. C++构造函数和析构函数

    构造函数简介 在上一个章节我们在创建好类的对象之后,首先对它的每一个成员属性赋值之后再对它们进行输出操作,如果不赋值就输出,这些值就会是垃圾值.而为了代码的简介,一次性为所有成员属性初始化,C++的类 ...

  4. JAVA--继承

    项目开发遇到一个问题,稀里糊涂给实现了,现在重点讨论一下这是个什么情况,大神们如果看到希望给点指点. 问题:子类与父类具有相同的属性和方法,将子类实例化为父类,调用对应属性的get.set方法,打印出 ...

  5. 将 instance 连接到 second_local_net - 每天5分钟玩转 OpenStack(85)

    今天是 local network 的最后一个小节,我们将验证两个local network 的连通性. launch 新的 instance “cirros-vm3”,网络选择 second_loc ...

  6. (第七天)DOM练习一

    动态删除元素 给定一个ul列表,点击ul中子节点进行删除 window.onload = function() { ].childNodes; () console.log(list.length); ...

  7. Android样式之selector

    日常开发当中,难免会出现这样一种情况,为一个按钮.TextView...设置一个点击状态的颜色改变,可能是background背景的改变,也可能是字体颜色的改变,简单点说:默认状态下,字体颜色或者背景 ...

  8. SQL Server 隐式转换引发的躺枪死锁-程序员需知

    在SQL Server的应用开发过程(尤其是二次开发)中可能由于开发人员对表的结构不够了解,造成开发过程中使用了不合理的方式造成数据库引擎未按预定执行,以致影响业务.这是非常值得注意的.这次为大家介绍 ...

  9. SIFT特征详解

    1.SIFT概述 SIFT的全称是Scale Invariant Feature Transform,尺度不变特征变换,由加拿大教授David G.Lowe提出的.SIFT特征对旋转.尺度缩放.亮度变 ...

  10. 使用webstom或者idea上传代码到github或coding

    鉴于github网络速度太慢,建议用coding.先介绍github上传方式,因为webstom或idea集成了github,方法简单. git是一个版本控制器,他的作用是管理代码.比如你修改了代码, ...