第三份笔记了,今天要说的就是JavaScript中的控制语句了,也可以叫做决策语句,如if,else,switch等。
相信有编程基础的人看到这些并不陌生,因为每一种语言都会包含这些东西,也许名字不一样,但一定有相对应的功能,这是因为有了这些控制语句,我们的程序才能看起来有一定的智能。
为了了解决策语句,我们首先要了解比较运算符,它们经常与决策语句相结合,从而实现我们的需求,下面将介绍一些常见的比较运算符。
运算符 | 作 用 |
== | 左操作数是否等于右操作数 |
< | 左操作数是否小于右操作数 |
> | 左操作数是否大于右操作数 |
<= | 左操作数是否小于等于右操作数 |
>= | 左操作数是否大于等于右操作数 |
!= | 做操作数是否不等于右操作数 |
其中==与赋值运算符(=)经常容易被新手所混淆,常常发生一些低级的错误,需要注意一下。同算数运算符一样,比较运算符同样具有优先级的区别,==和!=的优先级别最低,其它比较运算符的优先级相同。
通常我们会声明一个变量来存放比较的结果,如:
var number = prompt("Enter a number : ","");
var isZero = number == 0;
这里使用了prompt函数来获取用户输入的值,然后与0作比较,如果相同则isZero返回true,否则返回false。
下面将说的就是if语句了,if在中文中表示如果的意思,同样在编程中,也有着同样的意思,可能是作者希望人们见名知其义吧。例如“如果你的身高超过了5米,那么你肯定不是地球人”,这句话如果用JavaScript来表达的话,可以这么写:
if(height > 5){
Alert("you r not a person!");
}
可以看见if语句的格式很简单,if关键词开头,用一组小括号包裹判断条件后面用一组大括号来包裹达到执行条件需要执行的代码。当执行代码只有一句的时候,大括号可以省略不写,但是作为初学者的话,还是尽量写上,以免犯一些低级错误。
下面贴一个if语句使用的小列子:
<!DOCTYPE html>
<html lang="en">
<head>
<title>just a test</title>
</head>
<body>
<script>
var degFahren = parseInt(prompt("Enter the degress Fahrenheit",32),10);
var degCent = 5/9 * (degFahren -32);
document.write(degFahren+"\xB0 Fahrenheit is"+degCent+"\xB0 centigrade<br />");
if(degCent < 0){
document.write("That's below the freezing point of water");
}
if(degCent == 100){
document.write("That's the boiling point of water");
}
</script>
</body>
</html>
在if的判断条件中,除了判断运算符,通常还会用到逻辑运算符。逻辑运算符包括AND(逻辑与)运算符&&,OR(逻辑或)运算符||,NOT(逻辑非)运算符!。
逻辑与当且仅当左右两边操作数都为true的时候,结果才为true,反之为false。
逻辑或当且仅当左右两边操作数都为false的时候,结果才为false,反之为true。
逻辑非是将当前值取反,即原本为true,进行逻辑非运算,值变为false。
if语句除了单独使用,还可以与else,else if结合使用,从而达到多重条件的执行,下面将以一些伪代码来帮助理解:
var num = parseInt(prompt("Enter a number",30),10);
if(num > 30){
//如果输入的数字大于30
}else if(num > 20){
//如果输入的数字大于20
}else{
//如果输入的数字小于等于20
}
在使用if语句的时候,新手一定要注意大括号的作用范围,以免出现一些低级错误。
同if语句有类似功能的还有switch语句,当多次使用if,else if语句时,可以考虑使用switch语句进行代替,下面举例说明其用法:
var num = parseInt(prompt("Enter a number from 1 to 10",10),10);
switch(num){
case 1:
//当输入的数字为1时
break;
case 2:
//当输入的数字为2时
break;
.
.
.
default:
//当所有case都不符合条件时,默认执行的
break;
}
下面则是讲一下循环语句了,循环语句可以使用for或者while关键字,下面讲解一下其使用的格式:
for(初始化循环变量;循环测试条件;循环变量的增减操作){
//所要执行的代码
}
具体如下:
for(var i = 0; i < 10; i++){
alert(i);
}
除了普通的for循环外,还有特殊的for循环,当你想要遍历数组中的每个元素时,你还可以使用for..in循环来实现,其格式如下:
for(index in arrayName){
//所要执行的代码
}
具体如下:
var testArray = {"1","2","3"};
for(var tempIndex in testArray){
alert(testArray[tempIndex])'
}
下面将讲述另外一种循环方式,while循环,先讲解其格式:
while(判断条件){ //当条件为true的时候则一直循环执行代码块中的代码,为false的时候跳出循环
//所要执行的代码
}
具体如下:
var test = 10;
while(test > 0){
test--;
alert(test);
}
除了基本的while循环,还有do...while循环,它与while循环基本类似,唯一的区别是第一次执行的时候,无论条件是否为true,都将执行一次代码块中的代码,具体如下:
var test = 10;
do{
test --;
alert(test);
}while(test > 0)
在循环语句中除了当判断条件不符时自动跳出循环外,还可以人为控制的跳出循环,这里讲用到break关键字,下面举例说明:
var test = 10;
do{
if( test == 5){
break; //当test值为5时跳出循环
}
test --;
alert(test);
}while(test > 0)
与break类似的还有continue关键字,它是跳过当前位置之下的执行代码,进行下一轮循环,下面举例说明:
var test = 10;
for(test ; test > 0; test--){
if(test == 5){
continue; //当test=5时,跳过alert方法,继续执行下一轮循环吗,test=4时的代码
}
alert(test);
}
本章就到此结束了。