JavaScript数组为什么是对象?

有过PHP编程经验的程序员学习JavaScript的时候,会发现数组也是对象,这和PHP是不同的,在PHP中数组就是数组类型,并不是是对象.究竟为什么在JavaScript中数组会是对象呢?

var array = [];//声明一个数组

alert(typeof array);//数据类型为object

1.我们知道JavaScript中的数组索引是数字的(JavaScript中没有关联数组,关联数组就是对象的字符串属性),其实就是对象的属性

var array = [10,20,30];

alert(array[0]);

alert(array[1]);

alert(array[2]);

var array = {

  0:10,

  1:20,

  2:30 

}

alert(array[0]);

alert(array[1]);

alert(array[2]);

2.实例化构造方法创建数组

var array = new Array();//使用构造方法创建数组

PHP中的对象是实例化类得到的,而JavaScript中的数组也可以通过实例化构造方法得到,进一步验证数组是对象

3.数组对象的原型链顶端是Object对象(超类对象),数组对象可以使用Object对象的属性和方法,数组是Object对象的子集,再一次说明数组是对象