## 一、语句和语句块
1、语句:在Javascript中,分号或者换行均可作为Javascript的语句终止符,所以省略分号时,解释引擎会自动在行末尾添加";",但是,建议手动添加分号,有利于代码的阅读。
2、语句块:在Javascript中,语句块的界定符是:{ statement;}
~~~
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是需要被遍历的对象。
~~~
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示例
~~~
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;
}
~~~
~~~
var now = new Date();
with(now)
{
document.write(getDay());
document.write(getMonth+1);
}
//未使用with
document.write(now.getDay());
document.write(now.getMonth+1);
~~~
- 前言
- 一
- 二:变量
- 三:数据运算
- 四:流程控制
- 五:内建的全局函数
- 六:自定义函数
- 七:面向对象编程(OOP)
- 八:静态成员、静态类、枚举、重载和覆盖
- 九:原型链本质论
- 十:ECMAScript 5 增强的对象模型
- 十一:处理字符串---String类和正则表达式
- 十二:数组、多维数组和符合数组(哈希映射)
- 十三:处理日期和时间
- 十四:JavaScript内建类
- 十五:BOM之源---window对象
- 十六:BOM之源---BOM基本应用
- 十七:BOM新成就(1)--客户端存储数据(Storage实现)
- 十八:BOM新成就(1)--客户端存储数据(Web SQL DataBase实现)
- 十九--HTML5 DOM新标准---处理文档元信息和管理交互能力
- 二十---XMLHttpRequest和AJAX解决方案