一、数组概述
描述:使用单独的变量名来存储一系列的值【数组下标从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]