1. 程式人生 > 其它 >陣列的概述、屬性及特點

陣列的概述、屬性及特點

一、陣列概述

描述:使用單獨的變數名來儲存一系列的值【陣列下標從0開始】

陣列的建立:

(1)常規方式(new關鍵字)

var names = new Array();

names[0] = "Lily";

names[1] = "Lucy";

names[2] = "John";...

(2)簡潔方式

var names = new Array("Lily","Lucy","John");

(3)字面量方式

var names = ["Lily","Lucy","John"];

陣列的修改:陣列名[下標] = "修改後的值";

陣列的訪問:通過陣列名[下標]訪問;

//常規方式(new關鍵字)建立陣列
var names = new Array();
names[0] = "Lily";
names[1] = "Lucy";
names[2] = "John";
console.log(names); //["Lily", "Lucy", "John"]
		
//簡潔方式建立陣列
var names = new Array("Lily","Lucy","John");
console.log(names); //["Lily", "Lucy", "John"]
		
//字面量方式建立陣列
var names = ["Lily","Lucy","John"];
console.log(names); //["Lily", "Lucy", "John"]
		
//修改陣列第二個元素
names[1] = "Make";
console.log(names[1]); //Make
console.log(names); //(3)["Lily", "Make", "John"]

二、陣列屬性

1.constructor屬性

描述:本屬性返回物件的建構函式

【返回值時函式的引用,不是函式名】

如果一個變數是陣列你可以使用 constructor屬性來定義

語法:arr.constructor;

相容性:所有主流瀏覽器都支援

var arr = [1,4,5,3,6,8];
console.log(arr.constructor); //ƒ Array() { [native code] }

2.length屬性

描述:本屬性可設定或返回陣列中元素的數目

語法:

(1)設定陣列長度:arr.length = number;

(2)訪問陣列長度:arr.length;

注意:

(1)如果設定length長度小於陣列本身長度,那麼多餘的元素捨棄

(2)如果設定length長度大於陣列本省長度,那麼缺少元素用空位補齊

(3)如果設定length長度不是合法數值,那麼會報錯 Invalid array length

相容性:所有主流瀏覽器都支援

var arr = [23,45,45,3,1,6];
arr.length = 3;
console.log(arr.length); //3
console.log(arr); //(3)[23, 45, 45]
		
var arr = [23,45,45,3,1,6];
arr.length = 8;
console.log(arr.length); //8
console.log(arr); //(8)[23, 45, 45, 3, 1, 6, empty × 2]
		
var arr = [23,45,45,3,1,6];
arr.length = -1; //報錯 Invalid array length

3.prototype屬性

描述:該屬性可以向物件新增屬性和方法

語法:object.prototype.name = value;

注意:

(1)Array.prototype單獨不能引用陣列, Array()物件可以

(2)在js物件中,Prototype是一個全域性屬性

相容性:所有主流瀏覽器都支援

function student(name,age,sex){
	this.name = name;
	this.age = age;
	this.sex = sex;
};
var stu = new student("Licy",18,"女");
student.prototype.phone = null;
stu.phone = "12345678910";
console.log(stu.phone); //12345678910

三、陣列特點

1.陣列的本質

描述:陣列本質上是物件型別的一種特殊表現形式

陣列元素可以是一個字串,數字,陣列,布林,或者其他物件型別。

var arr = [1,2,3,4,5];
console.log(typeof arr); //object

2.陣列的遍歷

描述:陣列遍歷實際上時通過for-in迴圈來遍歷陣列中的每一個元素

語法:

for(var 變數名 in 陣列){

迴圈體;

}

var arr = [23,45,65,76,34,56,45,12,23,57,89];
for(var i in arr){
	console.log(arr[i]);
};
//等價於
var arr = [23,45,65,76,34,56,45,12,23,57,89];
for(var i=0;i<arr.length;i++){
	console.log(arr[i]);
};

執行結果如下:

3.陣列的空位

描述:如果陣列中某個位置時空元素,即兩個逗號之間沒有任何值。那麼就說陣列存在空位

注意:陣列的空位是計算長度的

var arr = [12,34,,55,66,77,88];
console.log(arr); //(7)[12, 34, empty, 55, 66, 77, 88]
console.log(arr.length); //7

4.陣列的刪除

描述:delete命令能過刪除陣列元素的值,從而形成空位

語法:delete arr[];

注意:delete刪除陣列元素的時候,只能刪除陣列元素的值,而不是把陣列元素刪除

var arr = [11,22,33,44,55,66,77,88,99];
console.log(delete arr[3]); //true
console.log(arr.length); //9
console.log(arr); //(9)[11, 22, 33, empty, 55, 66, 77, 88, 99]