陣列的概述、屬性及特點
一、陣列概述
描述:使用單獨的變數名來儲存一系列的值【陣列下標從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]