JavaScript对象

JavaScript对象

一、Array对象

提供对创建任何数据类型的数组的支持。

语法
arrayObj = new Array()
arrayObj = new Array([size])
arrayObj = new Array([element0[, element1[, ...[, elementN]]]])
参数解析

arrayObj

必选项。要赋值为 Array 对象的变量名。

size

可选项。可选项数组的大小。由于数组的下标是从零开始,创建的元素的下标将从零到 size -1。

element0,...,elementN

可选项。要放到数组中的元素。这将创建具有 n + 1 个元素的长度为 n + 1 的数组。使用该语法时必须有一个以上元素。

使用

创建数组后,能够用 [ ] 符号访问数组单个元素,例如:

var my_array = new Array();
for (i = 0; i < 10; i++){
   my_array[i] = i;
}
x = my_array[4];  // x = 5

​ 由于 JavaScript 中的数组的下标是从零开始的,前面例子中最后一条语句访问数组的第五个元素。该元素中保存的值是 4。 如果只向 Array 的构造函数传递了一个参数,而该参数是数字,则它必须是无符号32位整数(大约40亿)。该值成为数组的大小。如果该值为数值,但小于0或不为整数,发生运行时错误。如果传递给 Array 构造函数的是单个值并且不是数值,设置 length 属性为1,而且唯一的元素值成为单个的传入的参数。

注意 JavaScript 数组为解析数组,也就是尽管可以分配多个元素给一个数组,但实际上只有包含数据的元素才存在。这减少了数组使用的内存数量。

二、ActiveXObject对象

启用并返回 Automation 对象的引用。

newObj = new ActiveXObject(servername.typename[, location])

ActiveXObject 对象语法有这些部分:

参数解析

newObj

必选项。要赋值为 ActiveXObject 的变量名。

servername

必选项。提供该对象的应用程序的名称。

typename

必选项。要创建的对象的类型或类。

location

可选项。创建该对象的网络服务器的名称。

使用

Automation 服务器至少提供一类对象。例如,字处理应用程序可能提供应用程序对象、文档对象和工具栏对象。要创建 Automation 对象,将新的 ActiveXObject 赋给对象变量:

var ExcelSheet;
ExcelApp = new ActiveXObject("Excel.Application");
ExcelSheet = new ActiveXObject("Excel.Sheet");

本代码启动创建对象的应用程序(在这种情况下,Microsoft Excel 工作表)。一旦对象被创建,就可以用定义的对象变量在代码中引用它。 在下面的例子中,通过对象变量 ExcelSheet 访问新对象的属性和方法和其他 Excel 对象,包括 Application 对象和 ActiveSheet.Cells 集合。

// 使 Excel 通过 Application 对象可见。
ExcelSheet.Application.Visible = true;
// 将一些文本放置到表格的第一格中。
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
// 保存表格。
ExcelSheet.SaveAs("C:\\TEST.XLS");
// 用 Application 对象用 Quit 方法关闭 Excel。
ExcelSheet.Application.Quit();

只有当 Internet 安全性关闭时才能完成在远程服务器中创建对象。要在远程网络计算机创建对象,可以将该计算机的名称传递给 ActiveXObject 的 servername 参数。该名称与共享名的机器名部分相同。比如共享名为 "\myserver\public" 的网络,servername 是 "myserver"。另外,可以用 DNS 格式或 IP 地址指定 servername。

下面的代码返回在名为 "myserver" 的远程网络计算机上运行的 Excel 实例的版本号:

function GetAppVersion() {
   var XLApp = new ActiveXObject("Excel.Application", "MyServer");
   return(XLApp.Version);
}

如果指定的远程服务器不存在或找不到时将发生错误。

三、Boolean对象

创建新的 Boolean 值。

语法
boolObj = new  Boolean([boolValue])
参数解析

boolObj

必选项。要赋值为 Boolean 对象的变量名。

boolValue

可选项。是新对象的初始 Boolean 值。如果忽略 Boolvalue ,或者其值为 false、0、null、 NaN,或者空字符串,则该 Boolean 对象的初始值为 false。否则,初始值为 true。

使用

Boolean 对象是 Boolean 数据类型的包装器。每当 Boolean 数据类型转换为 Boolean 对象时,JavaScript 都隐含地使用 Boolean 对象。 很少会显式地调用 Boolean 对象。

四、Date对象

启用基本存储器并取得日期和时间。

语法
dateObj = new Date()
dateObj = new Date(dateVal)
dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]]) 
参数解析

dateObj

必选项。要赋值为 Date 对象的变量名。

dateVal

必选项。如果是数字值,dateVal 表示指定日期与 1970 年 1 月 1 日午夜间全球标准时间的毫秒数。如果是字符串,则 dateVal 按照 parse 方法中的规则进行解析。dateVal 参数也可以是从某些 ActiveX(R) 对象返回的 VT_DATE 值。

year

必选项。完整的年份,比如,1976(而不是 76)。

month

必选项。表示的月份,是从 0 到 11 之间的整数( 1 月至 12 月)。

date

必选项。表示日期,是从 1 到 31 之间的整数。

hours

可选项。 如果提供了 minutes 则必须给出。表示小时,是从 0 到 23 的整数(午夜到 11pm)。

minutes

可选项。 如果提供了 seconds 则必须给出。表示分钟,是从 0 到 59 的整数。

seconds

可选项。 如果提供了 milliseconds 则必须给出。表示秒钟,是从 0 到 59 的整数。

ms

可选项。 表示毫秒,是从 0 到 999 的整数。

使用

Date 对象保存以毫秒为单位表示特定时间段。如果某个参数的值大于其范围或为负数,则存储的其他值将做相应的调整。例如,如果指定 150 秒,JavaScript 将该数字重新定义为 2 分 30 秒。 如果数字为 NaN,则表示该对象不代表特定的时间段。如果未向 Date 对象传递参数,它将被初始化为当前时间 (UTC)。在能够使用该对象前必须为其赋值。Date 对象能够表示的日期范围约等于 1970 年 1 月 1 日前后各 285,616 年。 Date 对象具有两个不创建 Date 对象就可以调用的静态方法。它们是 parse 和 UTC。

下面的示例演示了 Date 对象的用法。

function DateDemo(){
   var d, s = "Today's date is: ";           // 声明变量。
   d = new Date();                           // 创建 Date 对象。
   s += (d.getMonth() + 1) + "/";            // 获取月份。
   s += d.getDate() + "/";                   // 获取日。
   s += d.getYear();                         // 获取年份。
   return(s);                                // 返回日期。
}

五、Enumerator对象

启用枚举集合中的项目。

语法
enumObj = new Enumerator([collection]) 
参数解析

enumObj

必选项。要赋值为 Enumerator 对象的变量名。

collection

可选项。任意 Collection 对象。

使用

集合与数组的不同点在于集合的成员不能直接访问。不象处理数组时使用下标,这时只能将当前项目指针移动到集合的下一或前一元素。 Enumerator 对象提供了访问集合的任何成员的方法,其操作与 VBScript 中的 For...Each 语句相似。

下面的代码显示了 Enumerator 对象的用法:

function ShowDriveList(){
   var fso, s, n, e, x;                     // 声明变量。
   fso = new ActiveXObject("Scripting.FileSystemObject");
   e = new Enumerator(fso.Drives);          // 在驱动器上创建 Enumerator。
   s = "";
   for (;!e.atEnd();e.moveNext())           // 枚举驱动器集合。
      {
         x = e.item();
         s = s + x.DriveLetter;
         s += " - ";
         if (x.DriveType == 3)              // 查看是否网络驱动。
            n = x.ShareName;                // 获取共享名。
         else if (x.IsReady)                // 查看驱动器是否已就绪。
            n = x.VolumeName;               // 获取卷名。
         else
            n = "[驱动器未就绪]";
         s +=  n + "<br>";
      }
   return(s);                               // 返回活动驱动器列表。
}

六、Error对象

保存有关错误的信息。

语法
var newErrorObj = new Error(  
)
var newErrorObj = new Error(
  number
)
var newErrorObj = new Error(
  number,
  description
)
参数解析

number

与错误相联的数字值。如果省略则为零。

description

描述错误的简短字符串。如果省略则为空字符串。

使用

每当产生运行时错误,就产生 Error 对象的一个实例以描述错误。该实例有两个固有属性保存错误的描述(description 属性)和错误号(number 属性)。

错误号是 32 位的值。高 16 位字是设备代码,而低字是实际的错误代码。

Error 对象也可以用如上所示的语法显式创建,或用 throw 语句抛掉。在两种情况下,都可以添加选择的任何属性,以拓展 Error 对象的能力。

典型地,在 try...catch 语句中创建的局部变量引用隐式创建的 Error 对象。因此,可以按选择的任何方法使用错误号和描述。

下面的例子演示了隐式创建 Error 对象的使用:

try
 { x = y                           // 产生错误。
}catch(e){                         // 创建局部变量 e。
  response.write(e)                  // 打印 "[object Error]".
  response.write(e.number & 0xFFFF)  // 打印 5009。
  response.write(e.description)      // 打印 "'y' is undefined".
}

七、Function对象

创建新的函数。

语法 1
function functionName([argname1 [, ...[, argnameN]]]){
   body
}
语法 2
functionName = new Function( [argname1, [... argnameN,]] body );
参数解析

functionName

必选项。最新创建函数的名称

argname1...argnameN

可选项。函数接收的参数列表。

body

可选项。包含调用该函数时被执行的 JavaScript 代码块的字符串。

使用

函数 JavaScript 中的基本数据类型。语法 1 创建在必要时由 JavaScript 转换为 Function 对象的函数值。JavaScript 在调用函数时将用语法 2 创建的函数转换为 Fnction 对象。

语法 1 是 JavaScript 中创建函数的基本方法。语法 2 是用于显式创建函数对象的另一方法。

例如,要创建将传递给它的两个参数相加的函数,可以用两种方法中的任一种完成:

示例1
function add(x, y)
{
   return(x + y);            // 执行加法并返回结果。
}
示例2
var add = new Function("x", "y", "return(x+y)");

在两种情况下,都可以用如下代码行调用该函数:

add(2, 3);

注意 在调用函数时,请确保包含了括号和必需的参数。调用函数时不用括号导致返回函数的文本而不是函数执行的结果。

八、Global对象

是一个固有对象,目的是把所有全局方法集中在一个对象中。

Global对象没有语法。直接调用其方法。

使用

Global 对象从不直接使用,并且不能用 new 运算符创建。它在 Scripting 引擎被初始化时创建,并立即使其方法和属性可用。

九、Math对象

是一个固有对象,提供基本数学函数和常数。

语法
Math.[{property | method}
参数解析

property

必选项。Math 对象的一个属性名。

method

必选项。Math.对象的一个方法名。

使用

Math 对象不能用 new 运算符创建,如果试图这样做则给出错误。该对象在装载脚本引擎时由该引擎创建。其所有方法和属性在脚本中总是可用。

十、Number对象

代表数值数据类型和提供数值常数的对象。

语法
numObj = new Number(value);
参数解析

numobj

必选项。要赋值为 Number 对象的变量名。

value

必选项。Required. The numeric value of the Number object being created.

value 参数是对象的数字值。

使用

JavaScript 根据数字值的要求创建 Number 对象。 很少有必要显式创建 Number 对象。Number 对象最主要的用途是将其属性集中到一个对象中,以及使数字能够通过 toString 方法转换为字符串。

十一、Object对象

提供所有 JavaScript 对象通用的功能。

语法
obj = new Object([value]); 
参数解析

obj

必选项。要赋值为 Object 对象的变量名。

value

可选项。任意一种 JavaScript 基本数据类型。(Number、Boolean、或 String。)如果 value 为一个对象,返回不作改动的该对象。如果 value 为 null、undefined,或者没有给出,则产生没有内容的对象。

使用

Object 对象被包含在所有其它 JavaScript 对象中;在所有其它对象中它的方法和属性都是可用的。在用户定义的对象中可以重定义这些方法,并在适当的时候通过 JavaScript 调用。toString 方法是经常被重定义的 Object 方法的例子。

十二、RegRxp对象

保存有关正则表达式模式匹配信息的固有全局对象。

语法
RegExp.property

必选项 property 参数是 RegExp 对象的任意一个属性。

使用

RegExp 对象不能直接创建,但始终可以使用。在成功的正则表达式查找完成之前,RegExp 对象各属性的初始值如下所示:

属性简写初始值
index-1
lastIndex-1
lastMatch$&空字符串。
lastParen$+空字符串。
leftContext空字符串。
rightContext空字符串。
$1 - $9$1 - $9空字符串。

在成功的正则表达式查找完成之前,其属性值为 undefined

不要将全局 RegExp 对象与 正则表达式 对象混淆。尽管听起来像是一回事,但它们是截然不同的。全局 RegExp 对象的属性包含不断更新的关于每个匹配出现的信息,而正则表达式对象只包含出现正则表达式匹配的信息。

示例

下面的例子演示了全局 RegExp 对象的用法。

function matchDemo(){
   var s;
   var re = new RegExp("d(b+)(d)","ig");
   var str = "cdbBdbsbdbdz";
   var arr = re.exec(str);
   s = "$1 contains: " + RegExp.$1 + "\n";
   s += "$2 contains: " + RegExp.$2 + "\n";
   s += "$3 contains: " + RegExp.$3;
   return(s);
}

十三、正则表达式对象

对象包含正则表达式模式以及表明如何应用模式的标志。

语法 1
re = /pattern/[flags]
语法 2
re = new RegExp("pattern",["flags"]) 
参数解析

re

必选项。将要赋值为正则表达式模式的变量名。

Pattern

必选项。要使用的正则表达式模式。如果使用语法 1,用 "/" 字符分隔模式。如果用语法 2,用引号将模式引起来。

flags

可选项。如果使用语法 2 要用引号将 flag 引起来。标志可以组合使用,可用的有:

  • g (全文查找出现的所有 pattern)

  • i (忽略大小写)

  • m (多行查找)

使用

不要将正则表达式对象跟全局 RegExp 对象混淆。尽管听起来像是一回事,但它们是截然不同的。正则表达式对象的属性只包含一个正则表达式的信息,而全局 RegExp 对象的属性包含了不断更新的每一个匹配出现的信息。

正则表达式对象保存用于查找字符串中的字符组合时的模式。创建正则表达式对象后,或者它被传递给字符串方法,或者字符串被传递给一个正则表达式方法。有关最近进行查找的信息被保存在全局 RegExp 对象中。

当预先知道查找字符串时用语法 1。当查找字符串经常变动或不知道时用语法 2,比如由用户输入得到的字符串。

在使用前 pattern 参数被编译为内部格式。对语法 1 来说,pattern 在该脚本被装载时被编译。对语法 2 来说,pattern 在使用前,或调用 compile 方法时被编译。

示例

下面的示例创建一个包含正则表达式模式及相关标志的对象(re),向您演示正则表达式对象的用法。在本例中,作为结果的正则表达式对象又用于 match 方法中:

function MatchDemo(){
   var r, re;                     // 声明变量。
   var s = "The rain in Spain falls mainly in the plain";
   re = new RegExp("Spain","i");  // 创建正则表达式对象。
   r = s.match(re);               // 在字符串 s 中查找匹配。
   return(r);                     // 返回匹配结果。
}

十五、String对象

可用于处理或格式化文本字符串以及确定和定位字符串中的子字符串。

语法
newString = new String(["stringLiteral"]);
参数

newString

必选项。要赋值为 String 对象的变量名。

stringLiteral

可选项。任意 Unicode 字符群。

使用

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 对象和字符串文字的处理不同的唯一情况。

十六、VBArray对象

提供对 Visual Basic 安全数组的访问。

语法
varName = new VBArray(safeArray)
参数解析

varName

必选项。要赋值为 VBArray 的变量名。

safeArray

必选项。VBArray 值。

使用

VBArrays 是只读的,并且不能被直接创建。在传递给 VBArray 构造函数之前 safeArray 参数必须已获得 VBArray 值。这只能通过从已有的 ActiveX 或其它对象获得值才能做到。

VBArrays 可以有多维。每一维的下标可以不一样。dimensions 方法取得数组的维数;lbound 和 ubound 方法取得每个维的下标范围。

示例

下面的例子由三部分组成。第一部分是创建 Visual Basic 安全数组的 VBScript 代码。第二部分是将 VB 安全数组转换为 JavaScript 数组的 JavaScript 代码。这两部分都放到 HTML 页的 <HEAD> 节中。第三部分是放在 <BODY> 节中以运行其它两部分的 JavaScript 代码。

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
   Dim i, j, k
   Dim a(2, 2)
   k = 1
   For i = 0 To 2
      For j = 0 To 2
         a(j, i) = k
         document.writeln(k)
         k = k + 1
      Next
      document.writeln("vbCRLF")
   Next
   CreateVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">
<!--
function VBArrayTest(vbarray){
   var a = new VBArray(vbarray);
   var b = a.toArray();
   var i;
   for (i = 0; i < 9; i++) 
   {
      document.writeln(b[i]);
   }
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
   VBArrayTest(CreateVBArray());
-->
</SCRIPT>
</BODY>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值