1.6.7 JavaScript的对象
JavaScript是一种面向对象的编程语言。一段文字、一张图片、一个表单都可以看作是一个对象,每个对象都有自己的属性、方法和事件。属性表示了该对象的某些特征,如字符串的长度、文本框里的文字等。方法可以理解成该对象可以处理的一些事情。
JavaScript提供了很多对象,这些对象可以直接在JavaScript里使用。本小节介绍JavaScript的一些常用的基本对象。
1.String对象
String对象代表一个字符串,定义该对象的最简单办法就是直接赋值。如下代码所示。此时,变量str就是一个String对象,它的值是“Hello JavaScript”。
var str="Hello JavaScript"
String对象的一个重要属性是length,该属性返回String对象的长度,即字符串包含的字符数。如下代码将在Web页面上显示数字16,因为String对象str包含16个字符。
document.write(str.length)
下面介绍String对象几个常见的方法。
❑substring():返回字符串的子字符串。示例代码如下所示。代码中str.substring(0,5)表示从str中位置为0的字符(即第一个字符)开始,取5个字符。所以,变量str_sub的值是“Hello”。
str_sub=str.substring(0,5)
❑indexOf():该方法查找一个String对象中另外一个字符串对象的起始位置,如果找到,则返回其位置,否则返回-1。
❑toLowerCase():该方法将String对象中的所有大写字母都变成小写字母。
❑toUpperCase():该方法将String对象中的所有小写字母都变成大写字母。
2.日期对象——Date
顾名思义,日期对象就是用来处理时间的JavaScript对象。要定义一个日期对象,需要使用new运算符,如下代码所示。
var some_date=new Date()
上面的代码通过new运算符定义了一个日期对象some_date,它的初始值就是当前系统的日期和时间。如果要指定初始值,可以使用类似下面的代码。
var some_date=new Date(2007,10,01)
上述代码指定日期对象some_date的值为2007年10月1日。因为,如果不指定时区,Date对象都采用UTC(世界时)表示其值,所以上面的变量some_date的值看起来是:Thu Nov 1 00:00:00 UTC+0800 2007。
Date对象有以下常用的方法。
❑setYear():设置Date对象的年份,如果使用两位数,该方法会自动为其前面加上“19”。如果要设置年份为2007年,则需要写全4位数。
❑getYear():取得Date对象的年份。
❑setMonth():设置Date对象的月份。
❑getMonth():取得Date对象的月份。
❑getDay():取得Date对象的星期,0表示星期天。
❑setHours():设置Date对象小时数,采用24小时制。
❑getHours():取得Date对象的小时数,采用24小时制。
❑setMinutes():设置Date对象的分钟数。
❑getMinutes():取得Date对象的分钟数。
❑setSeconds():设置Date对象的秒数。
❑getSeconds():取得Date对象的秒数。
❑toLocalString():返回一个由本地时间格式指定的Date对象所指定日期。
代码1-31演示了其中几个方法的用法。
代码1-31 Date对象方法的示例代码1-31.html
01 <html>
02 <head>
03 <title>1-31</title>
04 </head>
05 <body>
06
07 <script language="JavaScript">
08 var some_date=new Date()//定义日期对象
09 document.write(some_date.getDay()+"<br/>")//输出星期几
10 document.write(some_date+"<br/>")//输出完整日期
11 document.write(some_date.toLocaleString())//输出由本地时间格式指定的日期
12 </script>
13
14 </body>
15 </html>
【代码解析】第8行先定义一个日期对象,其值设置为当前系统的日期和时间。然后第9~11行分别用write()函数输出日期表现的不同形式,如星期几、本地时间格式。
用浏览器打开该HTML文档,会看到图1-33的执行结果。
3.数组对象——Array
数组对象用来存放一组数据(或者说是对象),这些数据可以是不同类型的。数组中的每个对象都有一个“下标”,用来表示它在数组中的位置。数组的下标从0开始算起,所以,第一个对象的位置是0,第二个对象的位置是1,以此类推。JavaScript中定义一个数组的方法如下代码所示。
var my_arr=new Array()
上面的代码通过new运算符定义了一个不包含任何数据的数组my_arr。定义完数组后,可以为其指定值,如下代码所示。
var myFavorite=new Array()
myFavorite[0]="mango"
myFavorite[1]="banana"
myFavorite[2]="apple"
上面的代码为数组myFavorite添加了3个值。也可以在定义数组的同时指定数组的大小,如下代码所示。
var myFavorite=new Array(3)
myFavorite[0]="mango"
myFavorite[1]="banana"
myFavorite[2]="apple"
还有一种为数组添加值的方式,即在定义数组的同时,给数组添加值,如下代码所示。
var myFavorite=new Array("mango","banana","apple")
可以通过数组下标来访问数组中的某个值,如下代码将在Web页面上显示“apple”。
document.write(myFavorite[2])
Array对象的一个重要属性是length。它返回数组的长度,即数组中元素的个数。
Array对象的常用方法有以下两种:
❑reverse():该方法使数组中的元素顺序颠倒过来。如有一个数组的元素顺序是1、2、3,则该数组使用该方法后,数组元素的顺序变为3、2、1。
❑join():该方法将数组中的各元素连接起来,各元素之间使用某种分隔符作为间隔,分隔符以参数形式传给该方法。该方法不会影响到数组本身的内容。
代码1-32演示了如何使用join方法。
代码1-32 Array对象的join方法1-32.html
01 <html>
02 <head>
03 <title>1-32</title>
04 </head>
05 <body>
06
07 <script language="JavaScript">
08 var myFavorite=new Array(3)//创建一个数组
09 myFavorite[0]="mango"
10 myFavorite[1]="banana"
11 myFavorite[2]="apple"
12
13 var str=myFavorite.join(",")//将myFavorite数组中元素用,连成字符串
14 document.write(str)
15 </script>
16
17 </body>
18 </html>
【代码解析】上述代码中,数组对象myFavorite调用其join方法,向其传入参数“,”,表示用“,”连接数组中的各个元素。用浏览器打开该HTML文档,会看到如图1-34所示的执行效果。
4.window对象
该对象表示的是一个浏览器窗口。引用该对象的方法或属性时,不需要使用“window.xxx”这种形式,而是直接使用该对象的方法或属性。该对象常见的属性如下所示。
❑name:当前窗口的名称。
❑states:表示浏览器窗口下方状态栏所显示的内容。通过对改属性法赋值,可以改变浏览器状态栏显示的内容。
❑self:指浏览器窗口本身。
❑history:浏览器历史访问对象。
❑location:浏览器地址对象。
❑document:文档对象。
window对象常见的方法如下所示。
❑open():打开一个窗口。
❑close():关闭一个已打开的窗口。
❑alert():弹出一个包含“确定”和“取消”按钮的对话框。该方法已经在前面介绍过。
5.document对象
document对象代表浏览器窗口内的文档。该对象包含了整个HTML文档,并且可以访问当前页面中的所有元素。该对象最常用的方法就是write,它向当前HTML文档写入数据。前面的内容已多次使用过该方法,这里不再重复举例。document有一个重要属性cookie。接下来的一小节,就向读者介绍JavaScript中的cookie。