《Javascript权威指南》学习笔记之四流程控制

一、语句和语句块

1、语句:在Javascript中,分号或者换行均可作为Javascript的语句终止符,所以省略分号时,解释引擎会自动在行末尾添加";",但是,建议手动添加分号,有利于代码的阅读。


2、语句块:在Javascript中,语句块的界定符是:{  statement;}

[javascript] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. var i = 1; 
  2.  
  3. i = 2; 
  4.  
  5. var j = 1; 
  6.  
  7. alert(i);   //输出2 
  8. alert(j);   //输出1 
var i = 1;

{
i = 2;

var j = 1;
}

alert(i);   //输出2
alert(j);   //输出1

在JS中,不认为语句块是一个新范围,只有函数才创建新范围。上述的i和j在同一个作用域范围


二、for...in循环:遍历对象的属性或数组元素,但不能迭代方法。此外,静态成员和部分属性(非对象原型链中的属性)也不能迭代。

2.1语法格式:

for(variable in object){

statements;

}     

variable是声明的变量,代表对象的属性名,object是需要被遍历的对象。

[javascript] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. var myObj = {name:"JavaScript"
  2. age:11,belonging:"ECMA" 
  3.  
  4. for(var prop in myObj) 
  5. document.write("myObj"+prop+"="+myObj[prop]+"<br/>");// 
var myObj = {name:"JavaScript",
age:11,belonging:"ECMA"
}

for(var prop in myObj)
{
document.write("myObj"+prop+"="+myObj[prop]+"<br/>");//
}

2.2 注意事项

2.2.1不会将相同的属性迭代两次。若child有原型parent,二者均有prop属性,则for-in循环中的prop来自child,忽略parent中的prop属性。

2.2.2若在类中(类内)定义一个for-in循环,则实例成员对该循环不可用,静态成员可用;若在代码中(类外)定义一个for-in循环,则实例成员可用,静态成员不可用。


三、for each...in循环:遍历对象的属性值,语法格式和for-in循环差不多,但是该语法是JS1.6引入,且只在FF2及以上版本可用。


四、标签语句:用于提供一个标识符,用于直接跳转到标识符处执行,仅有break和continue语句可以使用。

4.1语法格式:label:statements;

label是一个符合JS规则的合法标识符,statements可以是一条语句,也可以是一个语句块。

4.2示例

[javascript] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. foo: 
  2. for(var i = 1; i < 10; i++) 
  3. if(i == 5) 
  4. break foo; 
  5. document.write(i); 
  6. document.write("end");  //当i==5时,即跳出循环,执行此语句 
foo:
for(var i = 1; i < 10; i++)
{
if(i == 5)
 break foo;
document.write(i);
}
document.write("end");  //当i==5时,即跳出循环,执行此语句


五:with语句:方便引用对象的方法和属性

with(object)

{

statements;

}


[javascript] view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. var now = new Date(); 
  2. with(now) 
  3. document.write(getDay()); 
  4. document.write(getMonth+1); 
  5.  
  6. //未使用with 
  7. document.write(now.getDay()); 
  8. document.write(now.getMonth+1); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值