程序流程控制语句(选择、循环),其中选择类语句包括if语句和switch语句,循环语句包括while语句和for语句等
一、选择语句
(一)if语句
1.if语句 测试一个Boolean表达式,结果为真则执行某段程序
语法:
a.
if(<表达式>){
[语句组];
}
其中表达式必须有,执行时计算出一个Boolean值,若为真则执行整段语句,否则不执行;语句组可选,可由一条或多条语句 组成
b.if(<表达式>)
<语句>;
此处的表达式和语句必须有,且语句只有一条,如果为空则会影响下一条语句
if语句练习
<script type="text/JavaScript">
var hour=5;
if(hour<=6){
alert("还早,继续睡,哈哈");
}
</script>
2.if-else语句练习(提供双路选择)
if(<表达式>){
[语句组1];
}
else{
[语句组2];
}
其中表达式必须,要求是合法的JavaScript表达式或常量;语句组可选,可以为一条语句或多条语句
如果if块或else块后是单条语句,则花括号可以省略,但建议一律使用花括号
<script type="text/JavaScript">
var hour=7;
if(hour<=6){
alert("现在时间" + hour + "点,还早,继续睡,哈哈");
}
else{
alert("现在时间" + hour + "点,不早了,起床");
}
</script>
3.if-else if语句(当有多个可供选择判断的条件时)
if(<表达式1>){
[语句组1];
}
else if(<表达式2>){
[语句组2];
}
else{
[语句组3];
}
表达式必须,语句组可选,可以是一条或多条语句,此时组成多路选择结构,程序执行时按顺序执行各个if块,若条件满足则 转入执行相应语句块,从此忽略后面的语句块
<script type="text/JavaScript">
var hour=8;
if(hour<=6){
alert("现在时间" + hour + "点,还早,继续睡,哈哈");
}
else if(hour<=7){
alert("现在时间" + hour + "点,不早了,起床");
}
else{
alert("现在时间" + hour + "点,该吃午饭了,吼吼吼");
}
</script>
(二)switch语句(实现多路选功能)
switch(<表达式>){
case <标识1>:[语句组1;]
case <标识2>:[语句组2;]
...
[default:] [语句组3;]
}
表达式:必须是合法的JavaScript语句
标识:必须,当表达式的值与标识的值相等时作则执行其后语句
语句组:可选,由一条或多条语句组成
<script language="javascript">
var name="Bob";
switch(name){
case "Alice": alert("Hello! " + name);break;
case "Tom": alert("Hello! " + name);break;
case "Bob": alert("Hello! " + name);break;
default: alert("Nobody!");
}
</script>
二、选择语句(for,while,do-while,for-in)
(1)for语句(遇到重复执行指定次数的代码时)
(2)while语句(在执行循环体之前 测试一个条件,如果条件成立就进入循环体,否则跳到循环体后的第一条语句)
while(条件表达式){
语句组;
}
条件表达式:必选项,以其返回值作为进入循环体的条件,无论返回什么样类型的值,皆被作为布尔型处理,为真时进入循环 体
语句项:可选项,一条或多条语句组成
(3)do-while语句(先执行一遍循环体后,再测试条件表达式)
(4)for-in语句
for-in语句通常用于遍历某个集合的每个元素,比如数组有很多元素,其元素索引构成了一个集合,使用for-in语句可以遍历该 集合,进而取得所有元素数据
break和continue语句
break语句将无条件跳出并结束当前的循环语句,continue语句忽略其后的语句并结束此轮循环、开始新的一轮循环
三、异常处理语句
1.try-catch语句
异常捕捉和处理代码结构,当try块中的代码发生异常时,将由catch块捕捉并处理
try{
try语句;
}
catch(exception){
catch语句;
}
try语句:必选。可能发生错误的语句序列
exception:必选项,任何变量名,用于引用错误发生时的错误对象
catch语句:可选。错误处理语句,用于处理try块发生的错误
编码时通常将可能发生错误的语句写入try块中,并在其后的catch块中处理错误,错误信息包含在一个错误对象中(Error对象), 通过exception的引用可以
访问该对象,根据错误对象中的错误信息以确定如何处理
<script language="javascript">
try{
var n=error; <!--人为定义一个错误,error未定义就使用-->
}
catch(e){ <!--捕捉错误-->
alert((e.number&0xFFFF) + "号错误: " + e.description); <!--错误处理,仅输出错误信息-->
}
</script>
JavaScript的错误为运行时错误和语法错误,语法错误在编译阶段发现;而运行时错误在运行过程中发现,错误处理语句只能处理 运行时错误
2.try-catch-finally语句
所有过程执行完毕后前者的finally块无条件被执行,即无论如何都会执行finally块(尽管没有错误发生finall块中的语句也会在最后 得到执行)
try{
try块;
}
catch(e)
{
catch块;
}
finally{
finallyStatement;
}
try块:必选项,可能引发异常的语句
catch块:可选项,异常处理语句
finallyStatement:其他过程执行结束后无条件执行的语句
<script language="javascript">
var fruit=new Array("苹果","梨","香蕉","荔枝")
try{
for(i=0;i<fruit.length;m++){ <!--遍历数组,在此处人为引发一个异常,m未定义-->
document.write(fruit[n]+" ");
}
}
catch(e){ <!--捕捉错误-->
alert((e.number&0xFFFF) + "号错误: " + e.description);
}
finally{ <!--finally块中清除数组所占的资源-->
fruit=null;
alert("fruit=" + fruit + "已经断开fruit数组的引用!");
}
</script>
3.throw语句
多个异常处理语句可以嵌套使用,当多个结构嵌套时,处于里层try-catch语句不打算自己处理异常则可以将其抛出,
父级try-catch语句可以接收到子级抛出的异常,抛出操作使用throw语句
throw 表达式 (表达式的值作为错误信息对象传出,该对象将被catch语句捕获,throw语句可以使用在打算抛出异常的任何地 方)
<script language="javascript">
try{
var total=100;
var parts=0;
if(parts==0){
throw "Error:parts is zero";
}
alert("每人" + total/parts + "份");
}
catch(e){
alert(e);
}
</script>