JavaScript Array 核心属性与基础操作方法详解

作者:闭包旅人时间:2026-10-27 21:04:23浏览:596

本文深入解析JavaScript中Array对象的三个核心属性:length、prototype和constructor,并通过代码示例展示其动态特性与扩展用法。同时详细列举了数组的多种创建方式及元素访问技巧,帮助开发者掌握数组容量控制与基础操作。

JavaScript Array 核心属性与基础操作方法详解

本文系统梳理了Array数组的三个关键属性:length、prototype和constructor的具体用法,并补充介绍了数组对象的八种分类及多种常用方法,详细内容如下。

length 属性:动态容量控制

对象包含三个主要属性: 1、length 属性

length 属性 该属性用于表示数组的长度,即数组中元素的数量。由于数组索引始终从 0 开始,因此数组的有效索引范围是 0 到 length-1。与其他多数编程语言不同,JavaScript 中数组的 length 属性是可变的,这一点在开发时需格外注意。当将 length 设置为更大的值时,数组的实际内容不会发生变化,仅 length 属性值增大;若将 length 设置为比当前更小的值,则索引大于或等于新 length 的元素将被丢弃。以下代码演示了修改 length 属性的效果。

var arr=[12,23,5,3,25,98,76,54,56,76];//定义了一个包含10个数字的数组 alert(arr.length); //显示数组的长度10 arr.length=12; //增大数组的长度 alert(arr.length); //显示数组的长度已经变为12 alert(arr[8]); //显示第9个元素的值,为56 arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃 alert(arr[8]); //显示第9个元素已经变为"undefined" arr.length=10; //将数组长度恢复为10 alert(arr[8]); //虽然长度被恢复为10,但第9个元素却无法收回,显示"undefined"

通过上述代码可以清晰看到 length 属性的行为特征。值得注意的是,length 属性不仅可以显式赋值,还可能被隐式修改。在 JavaScript 中,可以访问未声明的变量,同样也可以访问未定义的数组元素(即索引大于或等于当前 length 的元素)。此时,length 属性值会自动更新为所访问元素索引值加 1。示例代码如下。

var arr=[12,23,5,3,25,98,76,54,56,76];//定义了一个包含10个数字的数组 alert(arr.length);//显示10 arr[15]=34; alert(arr.length);//显示16

代码首先定义了一个包含 10 个数字的数组,初始长度显示为 10。随后访问索引为 15 的元素并赋值为 34(即 arr[15]=34),再次输出长度时显示为 16。对于习惯强类型语言的开发人员而言,这一特性可能令人意外。事实上,使用 new Array() 创建的数组初始长度为 0,正是通过操作未定义的元素,才导致长度发生变化。

综上所述,length 属性具有动态调整容量的特性,利用它可以方便地增加或减少数组空间。深入理解该属性有助于在开发过程中灵活控制数组状态。

prototype 属性:扩展数组功能

2、prototype 属性

prototype 属性 该属性返回对象类型原型的引用。prototype 是 Object 对象共有的属性。

objectName.prototype

objectName 参数指定了对象名称。

说明:prototype 属性用于提供对象类的一组基本功能。新创建的实例将继承赋予该原型的操作。

以下示例说明 prototype 属性在数组对象中的具体用途。

为数组对象添加一个返回最大元素值的方法。实现方式是声明一个函数,将其添加到 Array.prototype 中,然后即可使用该方法。

function array_max( ) { var i, max = this[0]; for (i = 1; i < this.length; i++) { if (max < this[i]) max = this[i]; } return max; }

Array.prototype.max = array_max; var x = new Array(1, 2, 3, 4, 5, 6); var y = x.max( );

执行上述代码后,变量 y 将保存数组 x 中的最大值,即 6。

constructor 属性:构造函数引用

3、constructor 属性

constructor 属性 该属性表示创建对象的构造函数。

object.constructor //object是对象或函数的名称。

说明:constructor 属性是所有具有 prototype 的对象的成员,包括除 Global 和 Math 对象以外的所有 JScript 固有对象。该属性保存了对构造特定对象实例的函数的引用。

例如:

x = new String("Hi"); if (x.constructor == String) // 进行处理(条件为真)。 //或 function MyFunc { // 函数体。 }

y = new MyFunc; if (y.constructor == MyFunc) // 进行处理(条件为真)。

对于数组对象: y = new Array();

数组创建与元素访问方法

数组对象的八种分类及多种方法

1.数组的创建

var arrayObj = new Array(); //创建一个默认数组,长度是0 var arrayObj = new Array(size); //创建一个size长度的数组,注意Array的长度是可变的,所以不是上限,是长度 var arrayObj = new Array(item1,item2,); //创建一个数组并赋初值 需要说明的是,虽然第二种方法指定了长度,但所有情况下数组都是变长的。即使指定长度为 5,仍可存储超出该长度的元素,此时长度会随之自动改变。

2、数组的元素的访问

var ArrayItemValue=arrayObj[1]; //获取数组的元素值 arrayObj[1]= "要赋予新值"; //给数组元素赋予新的值

本文系统梳理了Array数组的三个关键属性:length、prototype和constructor的具体用法,并补充介绍了数组对象的八种分类及多种常用方法,详细内容如下。

对象包含三个主要属性: 1、length 属性

length 属性 该属性用于表示数组的长度,即数组中元素的数量。由于数组索引始终从 0 开始,因此数组的有效索引范围是 0 到 length-1。与其他多数编程语言不同,JavaScript 中数组的 length 属性是可变的,这一点在开发时需格外注意。当将 length 设置为更大的值时,数组的实际内容不会发生变化,仅 length 属性值增大;若将 length 设置为比当前更小的值,则索引大于或等于新 length 的元素将被丢弃。以下代码演示了修改 length 属性的效果。

var arr=[12,23,5,3,25,98,76,54,56,76];//定义了一个包含10个数字的数组 alert(arr.length); //显示数组的长度10 arr.length=12; //增大数组的长度 alert(arr.length); //显示数组的长度已经变为12 alert(arr[8]); //显示第9个元素的值,为56 arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃 alert(arr[8]); //显示第9个元素已经变为"undefined" arr.length=10; //将数组长度恢复为10 alert(arr[8]); //虽然长度被恢复为10,但第9个元素却无法收回,显示"undefined"

通过上述代码可以清晰看到 length 属性的行为特征。值得注意的是,length 属性不仅可以显式赋值,还可能被隐式修改。在 JavaScript 中,可以访问未声明的变量,同样也可以访问未定义的数组元素(即索引大于或等于当前 length 的元素)。此时,length 属性值会自动更新为所访问元素索引值加 1。示例代码如下。

var arr=[12,23,5,3,25,98,76,54,56,76];//定义了一个包含10个数字的数组 alert(arr.length);//显示10 arr[15]=34; alert(arr.length);//显示16

代码首先定义了一个包含 10 个数字的数组,初始长度显示为 10。随后访问索引为 15 的元素并赋值为 34(即 arr[15]=34),再次输出长度时显示为 16。对于习惯强类型语言的开发人员而言,这一特性可能令人意外。事实上,使用 new Array() 创建的数组初始长度为 0,正是通过操作未定义的元素,才导致长度发生变化。

综上所述,length 属性具有动态调整容量的特性,利用它可以方便地增加或减少数组空间。深入理解该属性有助于在开发过程中灵活控制数组状态。

2、prototype 属性

prototype 属性 该属性返回对象类型原型的引用。prototype 是 Object 对象共有的属性。

objectName.prototype

objectName 参数指定了对象名称。

说明:prototype 属性用于提供对象类的一组基本功能。新创建的实例将继承赋予该原型的操作。

以下示例说明 prototype 属性在数组对象中的具体用途。

为数组对象添加一个返回最大元素值的方法。实现方式是声明一个函数,将其添加到 Array.prototype 中,然后即可使用该方法。

function array_max( ) { var i, max = this[0]; for (i = 1; i < this.length; i++) { if (max < this[i]) max = this[i]; } return max; }

Array.prototype.max = array_max; var x = new Array(1, 2, 3, 4, 5, 6); var y = x.max( );

执行上述代码后,变量 y 将保存数组 x 中的最大值,即 6。

3、constructor 属性

constructor 属性 该属性表示创建对象的构造函数。

object.constructor //object是对象或函数的名称。

说明:constructor 属性是所有具有 prototype 的对象的成员,包括除 Global 和 Math 对象以外的所有 JScript 固有对象。该属性保存了对构造特定对象实例的函数的引用。

例如:

x = new String("Hi"); if (x.constructor == String) // 进行处理(条件为真)。 //或 function MyFunc { // 函数体。 }

y = new MyFunc; if (y.constructor == MyFunc) // 进行处理(条件为真)。

对于数组对象: y = new Array();

数组对象的八种分类及多种方法

1.数组的创建 var arrayObj = new Array(); //创建一个默认数组,长度是0 var arrayObj = new Array(size); //创建一个size长度的数组,注意Array的长度是可变的,所以不是上限,是长度 var arrayObj = new Array(item1,item2,); //创建一个数组并赋初值 需要说明的是,虽然第二种方法指定了长度,但所有情况下数组都是变长的。即使指定长度为 5,仍可存储超出该长度的元素,此时长度会随之自动改变。

需要指出的是,即便第二种方式在创建数组时设定了长度,但在所有情形下数组均具备可变长度特性。这意味着,即使预设长度为5,依然允许将元素存储于该规定长度之外;需注意,此时数组长度会随之发生调整。

var ArrayItemValue=arrayObj[1]; //获取数组的元素值 arrayObj[1]= "要赋予新值"; //给数组元素赋予新的值

作者最新文章