1.流程控制语句

(1)if判断
if语句块的语法形式:

<script type="text/javascript">
	if(//条件1){
		//条件1成立,要执行的语句块;
	}else if(//条件2){
		//条件2成立,要执行的语句块;
	}else{
		//条件1、条件2都不成立,要执行的语句块;
	}
	//其中只要有一条条件成立 则不会执行以后的语句块
</script>

(2)switch判断
switch语句的语法形式如下:

<script type="text/javascript">
	switch(//表达式){
	case /*值1*/:/*执行的语句块*/;break;
	case /*值2*/:/*执行的语句块*/;break;
	case /*值3*/:/*执行的语句块*/;break;
	default:/*执行的语句块*/
	}
	//default相当于else;break表示终止,否则会一直执行到switch结尾
</script>

(3)while循坏 和 do while循坏
while循坏的语法格式如下:

<script type="text/javascript">
	while(//循环条件){
		//循环体语句块;
	}
	//先判断循环条件,再进行循环体语句;即循环体条件不成立,循环体语句不会执行
</script>

do while循坏的语法格式如下:

<script type="text/javascript">
	do{
		//循环体语句块;
	}while(//循环条件)
	//先进行循环体语句,再判断循环条件;即循环体条件不成立,循环体语句也会执行一次;
</script>

两者区别: while先判断后执行、循环体语句可能一次都不执行,do while是先执行后判断,所以循环语句至少执行一次。
(4)for循坏 和 for in循坏
for循坏的语法格式如下:

<script type="text/javascript">
	for(//表达式1;表达式2;表达式3){
		//循环体语句块;
	}
	//表达式1用于初始化 var i = 0;
	//表达式2用于循环条件 i<10;
	//表达式1用于更新循环体变量 i++;
</script>

提示: 当循环次数确定的情况下一般使用for循环。相比while和do while语法更简洁。
(5)for in循坏
for in循坏的语法格式如下:

<script type="text/javascript">
	for(//变量 in 对象){
		//循环体语句块;
	}
</script>

作用: 1.遍历数组中所有数组元素。2.遍历JavaScript对象的所有属性。
示例:

<script type="text/javascript">
	var arr = new Array();
	arr[0]=1;
	arr[2]=2;
	arr[3]="abc";
	arr[4]=true;
	for(var index in arr){
		document.write(arr[index]+"</br>")
	}
	for(var properties in navigator){
		document.write("属性:"+properties+",属性值:"+navigator[properties]+"</br>")
	}
</script>
JavaScript提供了break和continue来改变循环的控制流

break的用法:

<script type="text/javascript">
	var i = 0;
	for(i=0;i<=5;i++){
		if(i==4){
			break;//终止循环
		}
		document.write("这个数字是:"+i+"</br>");
	}

	这个数字是:0
	这个数字是:1
	这个数字是:2
	这个数字是:3
</script>

continue的用法:

<script type="text/javascript">
	var i = 0;
	for(i=0;i<=5;i++){
		if(i==4){
			continue;//结束本次循环;进行下一次循环
		}
		document.write("这个数字是:"+i+"</br>");
	}

	这个数字是:0
	这个数字是:1
	这个数字是:2
	这个数字是:3
	这个数字是:5
</script>

总结: break直接终止循环,continue结束本次循环而直接进入下一次循环。

2.常用特殊语句

语句是JavaScript的基本执行单位,每条语句都是以分号结束,语句除了赋值语句、运算符语句等语句以外,还有一些常用的特殊语句。介绍如下:
1.语句块
其实就是用 {} 包裹的一些js代码而已,当然语句块不能独立作用域。

<script type="text/javascript">
{ // 语句块
    标签1: function test1(){return "hehe"};
    标签2: var test2 = function(){return "hehe"};
}
</script>

独立作用域的写法

<script type="text/javascript">
	(function () {
	    // 功能块代码...
	})();
	//自调用函数,不仅可以独立作用域,还可以在 UglifyJS,Closure Compressor 等工具编译的时候更加优化。
</script>

2.空语句
在JavaScript中,当希望多条语句被当做一条语句使用时,使用复合语句来替代。空语句(empty statement)则恰好相反,它允许包含0条语句;
JavaScript解释器执行空语句时不会执行任何动作。但当创建一个具有空循环体的循环时,空语句是有用的
在下面这个循环中,所有的操作都在表达式a[i++]=0中完成,这里并不需要任何循环体。然而JavaScript需要循环体中至少包含一条语句,因此,这里只使用了一个单独的分号来表示一条空语句

//初始化一个数组a
for(i = 0; i < a.length; a[i++] = 0);
//在for、while循环或if语句的右圆括号后的分号很不起眼,这可能造成一些bug,而这些bug很难定位到
//因为;的多余,造成与预想不同的结果
if((a == 0) || (b == 0));
0 = null;
//如果有特殊目的需要使用空语句,最好在代码中添加注释,这样可以更清楚地说明这条空语句是有用的
for(i = 0; i < a.length; a[i++] = 0)/*empty*/;

3.异常抛出语句
JavaScript 拥有当错误发生时提供错误信息的内置 error 对象。error 对象提供两个有用的属性:name 和 message。

<script type="text/javascript">
{
	for(var i=0;i<10;i++){
		document.write("这个数字是:"+i+"</br>");
		if(i==4){
			throw new Error("报错啦");
		}
	}
}
</script>

4.异常捕捉语句
try 语句使您能够测试代码块中的错误。
catch 语句允许您处理错误。只能使用一次
finally 语句允许您在 try 和 catch 之后执行代码,无论结果发生错误。

<script type="text/javascript">
try{
	var age=5;
	if(age==5){
		throw new Error("年龄太小啦")
	}
}catch(e){//e是异常的封装对象
	document.write("出错:"+e.message);
}finally{
	document.write("总会执行的finally块");
}
</script>

5.with语句
with 语句用于设置代码在特定对象中的作用域。

<script type="text/javascript">
with(document) {
  write("输出第一行数据</br>");
  write("输出第二行数据</br>");
  write("输出第三行数据</br>");
}
//等于
  document.write("输出第一行数据</br>");
  document.write("输出第二行数据</br>");
  document.write("输出第三行数据</br>");
</script>

提示: with 语句是运行缓慢的代码块,尤其是在已设置了属性值时。大多数情况下,如果可能,最好避免使用它。

07-12 23:06