数组概述
数组将多个数据收集到一个变量中。 单个索引号(用于一维数组)或者多个索引号(用于嵌套的数组或多维数组)引用数组中的数据。 若要引用数组中的单个元素,可以使用后面跟数组索引(数组索引放在方括号 ([]) 中)的数组标识符。 若要引用整个数组,则只需使用数组标识符。 将数据收集到数组中可简化数据管理。 例如,通过使用数组,方法只使用一个参数就可以将一组名称传递给函数。
JScript 中有两种类型的数组,即 JScript 数组和类型化数组。 虽然这两种类型的数组很相似,但是它们之间也有一些差异。 JScript 数组和类型化数组之间可以进行交互操作。 因此,JScript Array 对象可以调用任何类型化数组的方法和属性,而类型化数组也可以调用 Array 对象的很多方法和属性。 而且,接受类型化数组的函数也接受 Array 对象,反之亦然。 有关更多信息,请参见 Array 对象。
类型化数组
类型化数组(也称为“本机数组”)与 C 和 C++ 等语言中使用的数组类似。 类型化数组通过仅存储与数组类型声明所指定的类型对应的数据来提供类型安全。
提示
您可以定义类型为 Object 的类型化数组来存储任何类型的数据。
当脚本创建或初始化数组时,它就会设置类型化数组中元素的数量。 更改元素数量的唯一方法是重新创建数组。 对于创建的包含 n 个元素的类型化数组而言,其元素编号为 0 到 n-1。 尝试访问该范围外的元素将会产生错误。 此外,类型化数组是“稠密的”,即在允许的范围内的每个索引都引用一个元素。
脚本可以将声明的类型化数组赋给变量或常数,或者将该数组传递给函数、运算符或语句。 当将数组赋给变量(或常数)时,请确保变量的数据类型与数组的类型相匹配,并且数组的维数也匹配。
类型化数组是 .NET Framework System.Array 对象的一个实例。 要访问 System.Array 对象的静态成员,或显式创建 System.Array 对象需要完全限定名称 System.Array。 该语法将它与 Array(内部 JScript 对象)区分开来。
JScript 数组
JScript Array 对象提供比类型化数组更大的灵活性,当需要一般堆栈、需要项列表以及性能不是最关键因素时,使用这种对象是非常方便的。 但是,由于类型化数组提供类型安全、改善的性能并且能与其他语言更好地进行交互,所以开发人员通常选择类型化数组,而不选择 JScript 数组。
JScript 数组可以存储任何类型的数据,因此可以方便而快捷地编写使用数组的脚本,而不必考虑类型冲突。 因为它跳过了 JScript 提供的强类型检查,所以要慎用这种功能。
脚本可以动态地向 JScript 数组添加元素,也可以动态地移除 JScript 数组中的元素。 若要添加数组元素,请给该元素赋一个值。 delete 运算符可以移除元素。
JScript 数组是“稀疏的”。即,如果数组有 3 个元素,编号分别为 0、1 和 2,这时可以存在元素 50,而元素 3 到 49 不存在。 每个 JScript 数组都具有 length 属性,当添加元素时,将会自动更新该属性。 在前一个示例中,添加元素 50 就会使 length 变量的值更改为 51 而不是 4。
JScript Array 对象和 JScript Object 几乎是相同的。 它们之间的两个主要差异是:Object(默认情况下)没有自动长度属性;而 JScript Object 没有 Array 的属性和方法。 有关更多信息,请参见 JScript Array 对象。