它返回 10,因为您只将一个整数作为参数提供给 Array 构造函数。在这种情况下,新的 Array 构造函数就像某些编程语言一样,您需要为数组指定内存,这样您就不会得到那些 ArrayIndexOutOfBounds 异常。
Java 中的一个例子:
int[] a = new int[10];
或 C#:
int[] array = new int[5];
在 Javascript 中,当你编写时:
var a = new Array(10);
a[0] // returns undefined
a.length // returns 10.
如果你写:
a.toString() // returns ",,,,,,,,,", a comma for each element + 1
但是,由于 Javascript 不需要为数组分配内存,最好使用 [] 构造函数:
var a = [10];
a[0] //returns 10
a.length //returns 1
我认为让所有人感到困惑的是:
var a = new Array(1,2,3,4,5);
a[0] // returns 1
a.length // returns 5
但你也可以这样做:
var a = [1,2,3,4,5];
a[0] // returns 1
a.length // returns 5
因此,总而言之,尽量避免使用 new Array 构造函数,而改用 [] 构造函数。