14.2 JavaScript基本语法

JavaScript语言有自己的常量、变量、表达式、运算符以及程序的基本框架,下面将一一进行介绍。

14.2.1 常量和变量

在JavaScript中数据可以是常量或者是变量。

1.常量

常量的值是不能改变的,在常量中有以下几种类型:

整型常量:整型常量可以使用十六进制、八进制和十进制表示其值。

实型常量:实型常量是由整数部分加小数部分表示,如5.2、14.1;可以使用科学或标准方法表示,如5E7、4e5等。

布尔值:布尔常量只有两种状态:true或false。

字符型常量:使用单引号(‘)或双引号(“)括起来的一个或几个字符。

空值:JavaScript中有一个空值null,表示什么也没有。

特殊字符:JavaScript中以反斜杠(/)开头的不可显示的特殊字符。

2.变量

变量值在程序运行期间是可以改变的,它主要作为数据的存取容器。在使用变量的时候,最好对其进行声明。虽然在JavaScript中并不要求一定要对变量进行声明,但为了不至于混淆,还是要养成声明变量的习惯。变量的声明主要就是明确变量的名字、变量的类型以及变量的作用域。

变量名是可以随意取的,但要注意以下几点:

image01 变量名只能由字母、数字和下画线“_”组成,以字母开头,除此之外不能有空格和其他符号。

image01 变量名不能使用JavaScript中的关键字,所谓关键字就是JavaScript中已经定义好并有一定用途的字符,如int、true等。

image01 在对变量命名时最好把变量的意义与其代表的意思对应起来,以免出现错误。

在JavaScript中声明变量使用var关键字,如:

image316_1

此处定义了一个名为city1的变量。

定义了变量就要对其赋值,也就是向里面存储一个值,这需要利用赋值符“=”完成。如:

image316_2

上面分别声明了4个变量,并同时赋予了它们值。变量的类型是由数据的类型来确定的。如上面定义的变量中,给变量city1赋值为100,100为数值,该变量就是数值变量。给变量city2赋值为“北京”,“北京”为字符串,该变量就是字符串变量,字符串就是使用双引号或单引号括起来的字符。给变量city3赋值为true,true为布尔常量,该变量就是布尔型变量,布尔型的数据类型一般使用true或false表示。给变量city4赋值为null,null表示空值,即什么也没有。

变量有一定的作用范围,在JavaScript中有全局变量和局部变量。全局变量定义在所有函数体之外,其作用范围是整个函数;而局部变量定义在函数体之内,只对该函数是可见的,而对其他函数则是不可见的。

14.2.2 表达式和运算符

在定义完变量后,就可以对其进行赋值、改变、计算等一系列操作,这一过程通过表达式来完成,而表达式中的一大部分是在做运算符处理。

1.表达式

表达式就是常量、变量、布尔和运算符的集合,因此表达式可以分为算术表达式、字符表达式、赋值表达式及布尔表达式等。在定义完变量后,就可以对其进行赋值、改变、计算等一系列操作,这一过程通常通过表达式来完成,而表达式中的一大部分是在做运算符处理。

2.运算符

运算符是用于完成操作的一系列符号。在JavaScript中运算符包括算术运算符、比较运算符和逻辑运算符。

算术运算符可以进行加、减、乘、除和其他数学运算,如表14-1所示。

表14-1 算术运算符

算术运算符描  述
+
-
*
/
%取模
++递加1
递减1

逻辑运算符用于比较两个布尔值(真或假),然后返回一个布尔值,如表14-2所示。

表14-2 逻辑运算符

逻辑运算符描  述
&&逻辑与,在形式A&&B中,只有当两个条件A和B都成立时,整个表达式值才为真true
||逻辑或,在形式AIIB中,只要两个条件A和B中有一个成立,整个表达式值就为true
!逻辑非,在!A中,当A成立时,表达式的值为false;当A不成立时,表达式的值为true

比较运算符用于比较表达式的值,并返回一个布尔值,如表14-3所示。

表14-3 比较运算符

比较运算符描  述
<小于
>大于
<=小于等于
>=大于等于
=等于
!=不等于

14.2.3 基本语句

在JavaScript中主要有两种基本语句,一种是循环语句,如for、while;一种是条件语句,如if等。另外还有一些其他的程序控制语句,下面就来详细介绍基本语句的使用。

1.if…else语句

if…else语句是JavaScript中最基本的控制语句,通过它可以改变语句的执行顺序。

语法:

image318_1

说明:

当表达式的值为true,执行语句1,否则执行语句2。若if后的语句有多行,括在大括号{}内通常是一个好习惯,这样更清楚,并可以避免无意中造成错误。

举例:

image318_2

在代码中加粗部分的代码使用了if…else语句。在语句if(a%2==0)中,%为取模运算符,该表达式的意思就是求变量a对常量2的取模,如果能除尽就显示图像8.gif,如果不能除尽则显示图像9.gif。同时,变量a的值一直递增下去,这样图像就能不断交替显示下去,如图14.2所示。

image319_1

图14.2 if语句

2.for语句

for语句的作用是重复执行语句,直到循环条件为false为止。

语法:

image319_2

说明:

初始化参数告诉循环的开始位置,必须赋予变量初值;条件是用于判断循环停止时的条件,若条件满足,则执行循环体,否则跳出循环;增量主要定义循环控制变量在每次循环时按什么方式变化。在3个主要语句之间,必须使用分号(;)分隔。

举例:

image319_3

在代码中加粗部分的代码使用了for语句,使用for语句首先给变量a赋值1,接着执行“a++”,使变量a加1,即等于a=a+1,这时变量a的值就变为2,再判断是否满足条件a<=7,继续执行语句,直到a的值变为7,这时结束循环,可以看到效果如图14.3所示。

image320_1

图14.3 for语句

3.switch语句

switch语句是多分支选择语句,到底执行哪一个语句块,取决于表达式的值与常量表达式相匹配的那一路。它不同于if…else语句,它的所有分支都是并列的。程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支、第3分支……如果不匹配,则查找下一个分支是否匹配。

语法:

image320_2

说明:

当判断条件比较多时,为了使程序更加清晰,可以使用switch语句。使用switch语句时,表达式的值将与每个case语句中的常量作比较。如果相匹配,则执行该case语句后的代码;如果没有一个case语句的常量与表达式的值相匹配,则执行default语句。当然,default语句是可选的。如果没有相匹配的case语句,也没有default语句,则什么也不执行。

4.while循环

while语句与for语句一样,当条件为真时,重复循环,否则退出循环。

语法:

image320_3

说明:

在while语句中,条件语句只有一个,当条件不符合时跳出循环。

举例:

image321_1

在代码中加粗部分的代码使用了while语句,在HTML部分已经介绍了标题标记<h>,它共分为6个层次的大小,这里采用while语句控制<h>标记依次显示。首先声明变量a,然后在while语句中设置变量a的最大值。由于在前面声明变量时已经将变量a的值赋为1,因此在第1次判断时满足条件,就执行大括号中的语句。在这里,将变量a的最大值设为5,如此循环下去直到变量为6,这时已不满足条件,从而循环结束,因此在图14.4中只能看到5种层次的标题文字大小。

image321_2

图14.4 while语句

5.break语句

break语句用于终止包含它的for、switch或while语句的执行,控制传递给该终止语句的后续语句。

语法:

image322_1

说明:

当程序遇到break语句时,会跳出循环并执行下一条语句。

6.continue语句

continue语句只能用在循环结构中。一旦条件为真,执行continue语句,程序跳过循环体中位于该语句后的所有语句,提前结束本次循环周期并开始下一个循环周期。

语法:

image322_2

说明:

执行continue语句会停止当前循环的迭代,并从循环的开始处继续程序流程。

14.2.4 函数

函数是拥有名称的一系列JavaScript语句的有效组合。只要这个函数被调用,就意味着这一系列JavaScript语句被按顺序解释执行。一个函数可以有自己的参数,并可以在函数内使用参数。

语法:

image322_3

说明:

在这一语法中,函数名用于定义函数名称,参数是传递给函数使用或操作的值,其值可以是常量、变量或其他表达式。