2.5 常量
常量(literal)通常用来表示一个固定的值,这个值是不会被改变的,在JavaScript中常量分为整数常量、浮点常量、字符串常量、布尔常量和数组常量5种。常量可以直接出现在JavaScript的程序中。
2.5.1 整数常量
JavaScript中的数字可以分为整数与浮点数两种。当一个整数直接出现在JavaScript程序中时,这个整数就是整数常量。在JavaScript中整数常量又可以分为以下3种。
(1)十进制整数:十进制整数就是一个由0~9组成的数字序列,并且该序列的第一个数字不能是0(单独一个0除外)。以下代码都表示十进制整数常量:
0 123 9783649
(2)八进制整数:八进制整数的第一个数字是0,其后跟着一个由0~7组成的数字序列。以下代码都表示八进制整数常量:
0345 0127 07
(3)十六进制整数:十六进制整数是以“0x”或“0X”开头的,其后跟着十六进制的数字序列。十六制的数字序列由数字0~9和英文字母a~f(A~F)组成。以下代码都表示十六进制的整数常量:
0x123 0X134 0x12ff 0xff
整数常量通常直接出现在JavaScript的计算上,例如以下代码:
a = a + 123 b = 4 * 7
注意
只要是常量,通常都是直接出现在JavaScript程序中的。
2.5.2 浮点数常量
浮点数常量可以包含小数点,其表示方法有以下两种。
(1)传统记数法:传统记数法是将一个浮点数分为3个部分,即整数部分、小数点和小数部分。如果整数部分为0,可以省略整数部分。以下代码中的浮点数表示法为传统记数法:
1.2 23344.283 .22323
(2)科学记数法:当一个数字很大或很小的时候,可以使用科学记数法来表示。科学记数法将一个数字分为3部分,第1部分与传统记数法一样,是一个带小数的浮点数;第2部分是e或E;第3部分是一个带正号或负号的整数,其中正号可以省略。以下代码中的浮点数表示法为科学记数法:
1.2e3 1E4 3.5e-2 6.112E-3
在科学记数法中,e(或E)后面的整数代表10的指数次幂,再将该指数次幂乘以e(或E)前面的浮点数得到的就是科学记数法所代表的数值。请看以下例子:
1.2e3 = 1.2 × 103 = 1200 1E4 = 1 × 104 = 10000 3.5e-2 = 3.5 × 10-2 = 0.035 6.112E-3 = 6.112 × 10-3 = 0.006112
2.5.3 字符串常量
字符串是由单引号(')或双引号(")括起来的字符序列。其中字符序列的个数可以是零个或多个。单引号括起来的字符序列里可以包括双引号,而双引号所括起来的字符序列里也可以包含单引号。字符串常量必须写在一行中,如果换行的话,JavaScript会将其认为是两个语句,从而引发错误。以下代码都是字符串常量:
"JavaScript" 'JavaScript' "JavaScript's language" 'aa"bb'
2.5.4 字符串中的转义字符
上一节提到的字符串常量必须使用单引号或双引号括起来,如果一个字符串本身包含了单引号或双引号,那应该怎么办呢?假设一个字符串如下所示:
JavaScript中可以包含单引号(')或双引号(")
如果一个字符串常量中的内容如上所示,那么在JavaScript中要怎么表示呢?是用单引号将其括起来,还是用双引号将其括起来呢?如下所示,无论是使用单引号,还是使用双引号,在JavaScript中都会造成混淆,因为JavaScript无法分辨哪个引号是属于字符串、哪个引号是属于标识字符串常量的引号。
'JavaScript中可以包含单引号(')或双引号(")' "JavaScript中可以包含单引号(')或双引号(")"
对于这种情况,就必须使用转义字符。使用转义字符可以在字符串里加入一些特殊字符,如上面所说的单引号和双引号等。转义字符是以反斜杠(\)开始的,例如单引号可以使用“\'”来代替,双引号可以使用“\"”来代替。当浏览器解析JavaScript代码时,遇到转义字符“\'”和“\"”就会知道这是字符串中的一个字符,而不是标记字符结束的字符。因此,上面代码中的字符串常量可以写成如下代码:
'JavaScript中可以包含单引号(\')或双引号(")' "JavaScript中可以包含单引号(')或双引号(\")" 'JavaScript中可以包含单引号(\')或双引号(\")' "JavaScript中可以包含单引号(\')或双引号(\")"
在JavaScript中常用到的转义字符如表2.1所示。
【实例2.1】有关转义字符的使用方法,请看以下代码,注意加粗的文字:
01 <html> 02 <head> 03 <title>转义符的使用</title> 04 <script type="text/javascript"> 05 <!-- 06 document.write("JavaScript中可以包含单引号(\')或双引号(\") 07 <br>"); 08 document.write("本机的操作系统安装在C:\\Windows\\system32下"); 09 alert("学做网页的两个基础:\nHTML\nJavaScript"); 10 --> 11 </script> 12 </head> 13 <body> 14 </body> 15 </html>
【代码说明】代码第9行中有\n,它就是一个转义字符,表示换行,而代码第6行使用了\,它一般用在单引号或双引号之前。
【运行效果】以上代码为本书配套代码文件目录“代码\第02章\sample01.htm”里的内容(可在www.hzbook.com下载),其运行结果如图2.1所示,可以看出,“\'”输出为“'”、“\"”输出为“"”、“\\”输出为“\”,而“\n”在警告框里产生了换行。
说明
在上面的代码表示的页面结构中,<html>标签用于标记文档的开始和结束,即<html>标记开始位置,</html>标记结束位置。<html>标签内容主要由两部分组成,第一部分为头部标签<head>,<head>标记开始,</head>标记结束。在头部标签内又有<title>标签,<title>标记开始,</title>标记结束。第二部分为网页的主体,在编辑网页时把内容直接添加到<body>与</body>之间即可。
在头部标签<head>中嵌入了JavaScript脚本,其由<Script>…</Script>来标记。<Script>标记的常用属性有type、src、defer。
■type属性用来设置所使用的脚本语言,此属性已代替language属性。格式为:<script type="text/javascript">。
■src属性用来设置一个外部脚本文件的路径位置。格式为<script src="a.js ">。
■defer属性用来表示当HTML文档加载完毕后再执行脚本语言。格式为<script defer>。
2.5.5 布尔常量
布尔常量是比较简单的一种常量,只有两种值,一种是true(真),一种是false(假)。在有些时候,JavaScript也可以把0和1分别看成false和true。布尔常量常用于条件判断语句中。
2.5.6 数组常量
数组就是一些数据的集合,在JavaScript中数组中的数据可以是任何数据类型,包括数组。数组的定义方法如下所示:
数组名 = [数组值1, 数组值2, 数组值3 ……]
在数组中有以下两个重要的概念。
■数组长度:所谓数组长度就是数组中包含多少个数据。
■数组下标:数组使用下标来获取数组中的某个值。数组下标值是从0开始的,下标的最大值为数组长度减1。获取数组中某个值的方法如下所示:
数组名[下标值]
【实例2.2】有关数组的使用方法请看以下代码,注意加粗的文字:
01 <html> 02 <head> 03 <title>数组</title> 04 <script type="text/javascript"> 05 <!-- 06 arr = ["JavaScript",2,true]; 07 document.write(arr[0]+"<br>"); 08 document.write(arr[1]+"<br>"); 09 document.write(arr[2]+"<br>"); 10 --> 11 </script> 12 </head> 13 <body> 14 </body> 15 </html>
【代码说明】代码第6行创建了数组arr,并指定了数组的内容,然后第7~9行通过arr[索引]的形式读取数组内容。
注意
数组索引是从0开始的,即arr[0]表示第一个数值。
【运行效果】以上代码为本书配套代码文件目录“代码\第02章\sample02.htm”里的内容,其运行结果如图2.2所示。
【实例2.3】在定义数组常量时,还可以省略某些数据值,而直接用逗号隔开即可。请看以下代码,注意加粗的文字:
01 <html>
02 <head>
03 <title>数组</title>
04 <script type="text/javascript">
05 <!--
06 arr = ["JavaScript",,true,];
07 document.write(arr[0]+"<br>");
08 document.write(arr[1]+"<br>");
09 document.write(arr[2]+"<br>");
10 document.write(arr[3]+"<br>");
11 -->
12 </script>
13 </head>
14 <body>
15 </body>
16 </html>
【代码说明】代码第6行创建了数组arr,在给定默认值的时候中间有两个逗号。逗号是数组中值的间隔符号,这里省略了值。代码第7~10行可以输出4个值,虽然有两个值没有指定默认值,但依然可以输出,输出结果为undefined。
【运行效果】以上代码为本书配套代码文件目录“代码\第02章\sample03.htm”里的内容,其运行结果如图2.3所示。在本例中数组的长度为4,arr[0]的值为字符串“JavaScript”,arr[1]和arr[3]的值都为undefined,arr[2]的值为布尔值true。