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 语句是运行缓慢的代码块,尤其是在已设置了属性值时。大多数情况下,如果可能,最好避免使用它。