JS高程3.基本概念(5)语句
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)语句的更多相关文章
- JS高程3.基本概念(4)操作符
ECMA-262用于操作数据值的操作符包括: 算术操作符 位操作符 关系操作符 相等操作符 ECMAScript操作符的不同之处在于:它能够适用于很多值,包括字符串,数字值,布尔值,甚至是对象.(在应 ...
- JS高程3.基本概念(6)函数
1.ECMAScript中的函数使用function关键字来声明. eg: function sum (num1,num2){ alert(num1+num2); } sum(3,7); 注意: 在有 ...
- JS高程3.基本概念(3)
1.ECMAScript数值的范围 由于内存的限制,在大多数浏览器中,ECMAScript能够拿保存的数据的范围是 5e-324 ~ 1.7976931348623157e+308,其中最小的数值保存 ...
- JS高程3.基本概念(2)
1.ECMAScript数据类型 5种简单数据类型,分别是: Undefined Null Boolean Number String 1种复杂数据类型: Object (1)typeof操作符--检 ...
- JS高程3.基本概念(1)
1.语法 (1)ECMAScript中的一切(变量,函数名和操作符)都是区分大小写的. (2)标识符 标识符的第一个字符必须是字母,下划线或是美元符号. 其他字符可以是字母,下划线,美元符号和数字. ...
- 《JS高程》创建对象的7种方式(完整版)
一.理解对象 ECMA-262定义对象:无序属性的集合,其属性可以包含基本值.对象或者属性. 我们可以把 ECMAScript 的对象想象成 散列表:无非就是一组 名值对,其中值可以是数据或函数. 创 ...
- js 高程 函数节流 throttle() 分析与优化
在 js 高程 22.3.3章节 里看到了 函数节流 的概念,觉得给出的代码可以优化,并且概念理解可以清晰些,所以总结如下: 先看 函数节流 的定义,书上原话(斜体表示): 产生原因/适用场景: 浏览 ...
- 吃透Javascript数组操作的正确姿势—再读《Js高程》
Javascript中关于数组对象的操作方法比较多也比较杂,正好再次捡起<Javascript高级程序设计>来读,把它们一一总结梳理了一下: 方法类别 方法名称 方法描述 参数 返回值 备 ...
- 《JS高程》事件学习笔记
事件:文档或浏览器窗口中发生的一些特定的交互瞬间,也即用户或浏览器自身执行的某种动作. -------------------------------------------------------- ...
随机推荐
- dede在php7上空白
最近想看一本小说,想采集回来看,结果发现除了dedecms支持php7.0,其他主流cms基本上都不支持php7.0 在本地win7上调试了一遍,没有问题,放到linux服务器上的时候,发现打开任何页 ...
- Mysql5.7.13主从同步(复制)配置
主从同步是分布式mysql数据库相当重要的配置,现在我在虚拟机上完成主从配置,系统是CenterOS6.5,mysql版本是5.7.13 主服务器的ip是192.168.19.139 副服务器的ip是 ...
- Java基础-输入输出-3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc。
3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc. try { FileInputStream in = ...
- react + iscroll5 实现完美 下拉刷新,上拉加载
经过几天的反复折腾,总算做出一个体验还不错的列表页了,主要支持了下拉刷新,上拉加载两个功能. 一开始直接采用了react-iscroll插件,它是基于iscroll插件开发的组件.但是开发过程中,发现 ...
- php相对于java、js几点不太一样的地方
1.PHP 变量作用域 在 PHP 中,可以在脚本的任意位置对变量进行声明. 变量的作用域指的是变量能够被引用/使用的那部分脚本. PHP 有三种不同的变量作用域: local(局部) global( ...
- Utility2:Appropriate Evaluation Policy
UCP收集所有Managed Instance的数据的机制,是通过启用各个Managed Instances上的Collection Set:Utility information(位于Managem ...
- C#设计模式系列:外观模式(Facade)
外观模式主要解决的问题是:当我们有多个类要处理时,往往要一个类一个类地区调用,没有复用性和扩展性.外观模式通过定义一个界面,把处理子类的过程封装成操作,主要就把用户从复杂的调用过程中解放出来. 1.外 ...
- jquery $.each的用法
通过它,你可以遍历对象.数组的属性值并进行处理. 使用说明 each函数根据参数的类型实现的效果不完全一致: 1.遍历对象(有附加参数) $.each(Object, function(p1, p2) ...
- exe4j的使用
下载:http://download.cnet.com/exe4j/3000-2070_4-144405.html 参考:http://blog.chinaunix.net/uid-25749806- ...
- Easyui 让DataGrid适应浏览器宽度
DataGrid有100%宽度的设置,但是有时不是很让人满意,比如你你放大或者拉放你的浏览器,那么DataGrid只维持第一次加载的宽高,非常难看 $('#List').datagrid({ url: ...