一、为什么说数组是特殊的“对象”?
因为数组可以通过构造函数Array()创建,它的原型同样也是Array.prototype()。它的对象类型时Array。它具有自身属性length及一系列方法。数组的索引(数字)仅仅是对象属性名的一种特殊形式。其实a[10]等效于a["10"]的。
二、数组的定义
1. 直接量
var a = [1,2,3,"4",{x:5,y:6},[7,8],,9,10];缺省的被赋予undefined,同时也没属性length算在内。
2. 通过构造函数
var a = new Array(); == []//空数组
var a= new Array(10);//指定长度
var a= new Array(1,2,3)//同时赋初始值
三、数组的分类
1. 稀疏数组
存在缺省,length+1 > 元素个数
2. 非稀疏数组
length+1 = 元素个数
ps:length是个双刃剑,可以轻松设置来它来清理或者截取数组,但是也有可能被“他人”不小心利用,但是数组是一个对象,所以这个length属性是可以像普通对象一样改变它的属性特性,不允许被修改,以保护你的数组!
四、数组的基本操作:增删改查的一些特殊方法。