第四章 逻辑控制语句
4.1 复合语句
用大括号括起来的,由几个简单语句组成的js语句段,这样的语句称为复合语句
4.2 if语句
同java的if语句
eg:
if(typeof(age)!="number"){
type=typeof(age);
document.writeln("年龄应该是数字型,而您的输入内容为"+age+",类型为"+type);
}
4.2.2 if...else....语句
同java if...else语句
eg:
if(typeof(age)!="number"){
type=typeof(age);
document.writeln("年龄应该是数字型,而您的输入内容为"+age+",类型为"+type);
}else{
document.writeln("您的年龄是:"+age);
}
4.2.3 else if 语句
同java
if(e1){
action1;
}else if(e2){
action2;
}else{
action3;
}
4.2.4 if语句的嵌套
4.3 switch语句
同java
eg:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>switch语句</title>
</head>
<body>
<script language="JavaScript">
function f(score) {
switch (score){
case "A":
document.writeln("优秀 90~100分");
break;
case "B":
document.writeln("良好 80~89分");
break;
case "C":
document.writeln("及格 60~79分");
break;
case "D":
document.writeln("不及格 低于60分");
break;
default:
document.writeln("输入有误!")
}
document.writeln("<br>");
}
f("A");
f("B");
f("C");
f("D");
f("E");
</script>
</body>
</html>
运行结果:
4.4 while语句
同javawhile语句
eg:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>while语句</title>
</head>
<body>
<script language="JavaScript">
//while语句求 1+2+...+100=?
var sum=0,i=1;
while(i<=100){
sum+=i;
i++;
}
document.writeln("1+2+3+...+100="+sum+"<br>");
</script>
</body>
</html>
运行结果:
4.5 do...while语句
同java
eg:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>do...while循环</title>
</head>
<body>
<script language="JavaScript">
var sum=0,i=1;
do{
sum+=i;
i++;
}while(i<=100);
document.writeln("1+2+3+...+100="+sum);
</script>
</body>
</html>
运行结果同上。
4.6 for语句
同java
eg:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>for 语句</title>
</head>
<body>
<script language="JavaScript">
var sum=0;
for(var i=1;i<=100;i++){
sum+=i;
}
document.writeln("1+2+3+...+100="+sum);
</script>
</body>
</html>
运行结果同上
4.7 for...in语句
for(i in object){
循环体语句;
}
object是一个对象名、或者计算结果为对象的表达式
for...in语句遍历对象的每一个属性,将属性名作为字符串赋给i
eg:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>for...in遍历属性</title>
</head>
<body>
<script language="JavaScript">
var n=1;
for(i in document){
document.writeln((n++)+"、属性名称:"+i+";属性的值:"+document[i]+"<br>")
}
</script>
</body>
</html>
运行结果:
一共有245个属性
数组也是对象,for...in也可以像java那样遍历数组
eg:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>for...in遍历数组</title>
</head>
<body>
<script language="JavaScript">
var a=new Array(10);
for(var i=0;i<a.length;i++){
a[i]=i*i;
}
for( var i in a){
document.writeln("a["+i+"]="+a[i]+"<br>")
}
</script>
</body>
</html>
运行结果:
4.8 标签语句(给代码段起名字,方便goto和break、continue)
任何语句如果在前面加上标识符和冒号都可以构成标签语句,例如switch语句中的case标签和default标签就是特殊的标签语句
label:
statement
label是标签名,可以是任何合法标识符。statement可以是任何形式的语句块。(应用在4.9)
4.9 break和continue语句
和java几乎完全一样,此处举例讲讲和label搭配使用
eg:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>break~continue</title>
</head>
<body>
<script language="JavaScript">
loop:
for(var i=0;i<2;i++){
for(var j=0;j<5;j++){
if(j==3) break loop;
document.writeln("("+i+","+j+")"+"<br>");
}
}
document.writeln("<hr>");
for(var i=0;i<2;i++){
for(var j=0;j<5;j++){
if(j==3) break;
document.writeln("("+i+","+j+")"+"<br>");
}
}
</script>
</body>
</html>
运行结果:
4.10 异常处理语句
不像java分类型,直接捕获,直接抛出,异常信息直接赋值给一个新变量
try{
语句
可以自己throw
}catch(e){
document.writeln(e);//简单粗暴输出异常信息
}
eg:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>exception</title>
</head>
<body>
<script language="JavaScript">
function divI(i) {
try{
if(i==10){
throw "我自己抛出异常,就是不让自己除自己";
}
document.writeln(10/i+"<br>");
}catch (e) {
document.writeln(e);
}
}
divI(5);
divI(0);
divI(2);
divI(10);
</script>
</body>
</html>
运行结果:
4.11其他语句
4.11.1 return 语句
返回一个值 结束函数
4.11.2 with语句
通过with表达式可以使用对象的属性和方法,而不需要每一次都输入对象的名称。语法如下:
with(object){
操作对象属性;
操作对象方法;
}
例:
with(document.forms[0]){
name.value="";
password.value="";
}
上面的代码等价于:
document.forms[0].name.value="";
document.forms[0].password.value="";
使用with语句省略了重复录入document.forms[0]的麻烦。然而使用with语句运行效率低,程序执行慢。建议使用变量替换法替代with,效率更高:
var form =document.forms[0];
form.name.value="";
form.password.value="";