在Javascript中Array是用于构造数组的全局对象,数组是类似于列表的高阶对象。
语法:
```
[element0,element1, ...,elementN]
new Array(element0,element1[, ...[,elementN]])
new Array(arrayLength)
Array(element0,element1[, ...[,elementN]])
Array(arrayLength)
```
使用Array() 于new Array()两种语法有什么区别没?实际上,并没有影响,这得益于Array构造器内部对this指针的判断,ELS5_HTML规范是这么说的:
When Array is called as a function rather than as a constructor, it creates and initialises a new Array object. Thus the function call Array(…) is equivalent to the object creation expression new Array(…) with the same arguments.
参数:
elementN
Array 构造器会根据给定的元素创建一个 JavaScript 数组,但是当仅有一个参数且为数字时除外(详见下面的 arrayLength参数)。注意,后面这种情况仅适用于用 Array 构造器创建数组,而不适用于用方括号创建的数组字面量。
arrayLength
一个范围在 0 到 之间的整数,此时将返回一个 length 的值等于 arrayLength 的数组对象(言外之意就是该数组此时并没有包含任何实际的元素,不能理所当然地认为它包含 arrayLength 个值为 undefined的元素)。如果传入的参数不是有效值,则会抛出 RangeError 异常。
var arr = new Array(Math.pow(2,32));//报错Invalid array length
为什么呢,无符号int型的最大长度为2的32次方-1
为什么是2的32次方-1整型为4个字节,一个字节8,即32位,本来第一位为符号位,无符号整型就从第一位开始计数了,所以范围为0到2的32次方-1
网友评论