js数组最大长度限制(js数组中特别的length)(1)

当我们在js中定义一个数组时,这个数组就获得了一个length属性,这个属性的value就是数组的长度。如下:

var a = [1,2,3,4,5] console.log(a.length);//5

我们可以通过这个length属性设置数组的长度。

var a = [1,2,3,4,5] console.log(a.length);//5 a.length = 3; console.log(a)//[1,2,3] a.length = 10; console.log(a);//[1, 2, 3, empty × 7]

当我们定义length的值小于数组的长度时,超过length的值会被舍弃,当我们定义length大于数组的长度时,超过的部分会被自动提充并设置成undefined。

所以属性length对于数组来说是个可读可写的,并且数组的长度也会被设置成对应的长度。

我们知道js高度的动态性,我们任意改变属性的类型。但是当我们给数组length的赋值的类型不是一个number时,js的解释器会报一个类型错误的提示。

另外,我们在之前也曾尝试给一个数组增加一个属性

var a = [1,2,3,4,5] a.x = 100; console.log(a); delete a.x console.log(a);

在代码中我们给数组a添加了一个属性x,浏览器没有报错,然后又删除了属性x,数组a也正常删除了属性x,没有出现问题。

从对length的读取和赋值的操作来看,length很类似数组的一个属性,那么当我们对数组的length执行length操作时,会发生什么呢?代码:

var a = [1,2,3,4,5] delete a.length console.log(a.length);

当我们删除length时,并没有报错,但是我们依然可以通过length获取数组的长度

,