实现有价值的IT服务
全部博文(709)
分类: IT职场
2005-10-21 21:32:50
Javascript提供了九个固有对象或称内置对象。它们是 Array、Boolean、Date、Function、Global、Math、Number、Object和String 对象。其中有的在入门篇中作了简单的或详细的介绍。这里我们再系统地归纳一下,当然不会再重复具体的叙述,必要时请您自己查阅入门篇中的相关内容。
一 Boolean、Number、String对象
布尔对象、数值对象和字符串对象是把相应的数据类型定义为对象。很少需要显式地布尔或数值数据说明为对象,系统会自动把数据转化为对象。字符串数据一般也可自动地作为对象使用,我们可直接地对字符串调用其丰富的“方法”。
要用new语句说明这三个对象,语法如下:
new Boolean(boolvalue)
new Number( value )
new String( Strvalue )
可选的 boolvalue 参数是新对象的初始 Boolean 值。如果该值省略,或者为 false、0、null、NaN 以及空字符串,则该 Boolean 对象的初始值为 false。否则,初始值为 true
Number 对象最主要的用途是将其属性集中到一个对象中,以及使数字能够通过 toString 方法转换为字符串。
String 对象可用字符串文字显式创建。用这种方法创建的 String 对象(指以标准字符串形式)与用 new 运算符创建的 String 对象处理上不同。所有字符串文字共享公用的全局字符串对象。所以,如果为字符串文字添加属性,则它对所有标准字符串对象都是可用的:var alpha, beta; alpha = "这是一个字符串"; beta = "这也是一个字符串"; alpha.test = 10;
在本例中,这时为 beta 和所有将来的字符串定义 test。然而,在下面的例子中,被添加属性的处理略有不同:
在这种情况下,不为 delta 定义 test。每个用 new String 声明的 String 对象有其自己的一组成员。这是对 String 对象和字符串文字的处理不同的唯一情况。var gamma, delta; gamma = new String("这是一个字符串"); delta = new String("这是也一个字符串"); gamma.test = 10;
二 Math 对象
Math[.{property | method}]Math 对象不能用 new 运算符创建,如果试图这样做则给出错误。该对象在装载脚本引擎时由该引擎创建。其所有方法和属性在脚本中总是可用。
Math 对象的方法在“入门篇”有详细介绍。Math 对象的属性提供了一些数学常数,它们是
E 属性 LN2 属性 LN10 属性 LOG2E 属性 LOG10E 属性
PI 属性 SQRT1_2 属性 SQRT2 属性
这些都在入门篇中叙述过。
三 Date对象和Array对象
Date对象和Array对象必须用new语句来创建,创建Date对象的语法:
var newDateObj = new Date()
var newDateObj = new Date(dateVal)
var newDateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])
但具有两个不创建 Date 对象就可以调用的静态方法。它们是 parse 和 UTC。
Array对象提供对创建任何数据类型的数组的支持。语法:new Array()
new Array(size)
new Array(element0, element1, ..., elementn)
如果只向 Array 的构造函数传递了一个参数,而该参数是数字,则它被强制转为无符号整数,并且该值被用作数组的大小。否则,传入的参数被作为数组中唯一的元素。
四 枚举对象Enumerator
Enumerator的作用是说明一个枚举集合,为了访问集合中的成员。语法:
new Enumerator(集合对象)
集合与数组的不同点在于集合的成员不能直接访问。不象处理数组时使用下标,这时只能将当前项目指针移动到集合的下一或前一元素。
Enumerator 对象提供了访问集合的任何成员的方法,其行为与 VBScript 中的 For...Each 语句相似。
Enumerator 对象没有属性,有下列四种方法:
1. atEnd 方法
myEnum.atEnd( ) 返回一个 Boolean 值,指明枚举算子是否位于集合的末尾。
如果当前项是集合中的最后一个,或者集合为空,或者当前项没有定义,那么 atEnd 方法将返回true。否则返回 false。
2. item 方法
myEnum.item( ) 返回集合的当前项。
如果集合为空或者当前项没有定义,那么将返回 undefined 。
3. moveFirst 方法
myEnum.moveFirst( ) 重新将集合中的当前项设置为第一项。
如果集合中没有项,那么当前项将被设置为undefined。
4. moveNext 方法
myEnum.moveNext( ) 将集合中的当前项移动到下一项。
如果枚举算子位于集合的最后,或者集合为空,那么当前项将被设置为undefined 。
目标任务1 说明 Enumerator 对象的用法。
代码
function ShowFirstAvailableDrive()
{
var fso, s, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives);
e.moveFirst();
s = "";
do
{
x = e.item();
if (x.IsReady)
{
s = x.DriveLetter + ":";
break;
}
else
if (e.atEnd())
{
s = "No drives are available";
break;
}
e.moveNext();
}
while (!e.atEnd());
return(s);
}
代码注释
本例程使用了ActiveXObject对象,用它创建了一个FileSystemObject对象,名为fso。fso对象包含许多内容,我们将在第三篇中专题讨论。fso对象一个包含驱动器集合fso.Drives。程序将逐个检查驱动器,并显示第一个可用的驱动器。