你披着羊皮的狼,我要把你赶走。
————威廉-莎士比亚
JavaScript提供了一种拥有一些类数组(array-like)特性的对象。它把数组的下标转变成字符串,用其作为属性。它的属性的检索和更新的方式与对象一模一样,只不过多一个可以用整数作为属性名的特性。数组有自己的字面量格式。
数组字面量
一个数组字面量是在一对方括号中包围0个或多个逗号分隔的值的表达式。
JavaScript允许数组包含任意混合型的值:
1 | var misc=[ |
长度
每一个数组都有一个length
属性,且没有上界。
用大>=当前length
的数字作为下标来存储一个元素,那么length
会被增大以容纳新元素,不会发生越界错误。
把length
设小将导致所有下标>=length
的属性被删除。
length
属性的值是这个数组的最大整数属性名加上1。它不一定等于数组里的属性的个数。
删除
delete
运算符会在数组中留下一个空洞。这是因为排在被删除元素之后的元素保留着它们最初的属性。
容易混淆的地方
什么时候用数组或对象:当属性名是小而连续的整数时,用数组,否则,使用对象。
方法
通过给Array.prototype扩充一个函数,每个数组都继承了这个方法。
数组其实是对象,也可以直接给一个单独的数组添加方法。
指定初始值
JavaScript的数组通常不会预置值。我们可以修正它:
1 | Array.dim=function(dimension,initial){ |
构造矩阵
1 | Array.matrix=function(m,n,initial){ |