Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2501357
  • 博文数量: 709
  • 博客积分: 12251
  • 博客等级: 上将
  • 技术积分: 7905
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-17 00:00
个人简介

实现有价值的IT服务

文章存档

2012年(7)

2011年(147)

2009年(3)

2008年(5)

2007年(74)

2006年(431)

2005年(42)

分类: IT职场

2005-10-21 21:32:50

Javascript语言的内置对象

 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。然而,在下面的例子中,被添加属性的处理略有不同:

var gamma, delta;
gamma = new String("这是一个字符串");
delta = new String("这是也一个字符串");

gamma.test = 10;
在这种情况下,不为 delta 定义 test。每个用 new String 声明的 String 对象有其自己的一组成员。这是对 String 对象和字符串文字的处理不同的唯一情况。

二 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 对象就可以调用的静态方法。它们是 parseUTC

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。程序将逐个检查驱动器,并显示第一个可用的驱动器。

阅读(825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~