Array 对象
更新:2007 年 11 月
提供对任何数据类型的 expando 数组的支持。Array 构造函数有三种形式。
function Array( [size : int] )
function Array( [... varargs : Object[]] )
function Array( [array : System.Array )
参数
size
可选项。数组大小。当数组基于零时,所创建的元素将具有从零到 size -1 的索引。varargs
可选项。包含传递到构造函数的所有参数的类型化数组。这些参数用作数组中的前几个元素。array
可选项。要复制到所构造数组的数组。
备注
如果只将一个参数传递到 Array 构造函数并且参数为数字,则该参数必须是无符号的 32 位整数(任何小于约四十亿的整数)。所传递的值是数组的大小。如果该值是小于零的数字或者不是整数,则将出现运行时错误。
数据类型为 System.Array 的变量可以传递到 Array 构造函数。它将生成作为输入数组副本的 JScript 数组。System.Array 必须只有一维。
如果将单个值传递到 Array 构造函数而且该值不是数字或数组,数组的 length 属性将设置为 1,数组第一个元素(元素 0)的值将成为单个传入的参数。如果将几个参数传递到构造函数,数组的长度则设置为参数的数目,这些参数将成为新数组中的前几个元素。
请注意,JScript 数组是稀疏数组;也就是说,即使您为数组分配多个元素,仍会只存在实际包含数据的元素。这将减少数组所使用的内存量。
Array 对象与 System.Array 数据类型互用。因此,Array 对象可以调用 System.Array 数据类型的方法和属性,而 System.Array 数据类型可以调用 Array 对象的方法和属性。此外,采用 System.Array 数据类型的函数接受 Array 对象,反之亦然。有关更多信息,请参见 Array 成员。
当 Array 对象传递到采用 System.Array 的函数或者从 Array 对象调用 System.Array 方法时,将复制 Array 的内容。这样,原始 Array 对象无法由 System.Array 方法修改,或通过将其传递给接受 System.Array 的函数来修改。只有非破坏性 Array 方法可在 System.Array 上调用。
![]() |
---|
当您需要一般堆栈或项列表并且性能不是您最关心的问题时,Array 对象会给您带来许多方便。在其他所有上下文中,应使用类型化的数组数据类型。类型化数组的许多功能与 Array 对象相同,它也提供类型安全性、性能改进以及与其他语言的更好交互。 |
![]() |
---|
Array 对象可以与 JScript 中的 .NET Framework System.Array 数据类型互用。但是,其他公共语言规范 (CLS) 语言不能使用 Array 对象,因为只有 JScript 提供此对象;它不是从 .NET Framework 类型派生的。因此,当对参数进行类型批注并返回符合 CLS 的方法的类型时,请确保使用 System.Array 数据类型,而不是 Array 对象。然而,可以使用 Array 对象对标识符(而不是参数或返回类型)进行类型批注。有关更多信息,请参见编写符合 CLS 的代码。 |
示例
可以使用 [ ] 符号来访问数组的各个元素。例如:
var my_array = new Array();
for (var i = 0; i < 10; i++) {
my_array[i] = i;
}
var x = my_array[4];
由于 Microsoft JScript 中的数组基于零,所在在以上示例的最后语句中访问数组元素为第五个元素。该元素包含值 4。