声明 JavaScript 数组时,“Array()”和“[]”有什么区别?
考虑以下代码:
var myArray = new Array(5);
和
var myArray = [5];
尽管这两行可能看起来相同,但事实并非如此。
考虑以下解释:
案例 1:var myArray = new Array(5)
- 此方法用于定义长度为 5 的数组。此处传递的参数 '5' 是定义要制作的数组的初始长度的参数。因此,可以使用此代码传递任何值以获取该长度的数组。
// Write Javascript code here //Creates an array of 5 undefined elements var arr = new Array(5); alert(arr.length);
输出:
5
- 使用此方法的另一个优点是它会预先在堆栈中创建所需大小的数组。反过来,这有助于避免 StackOverflow 错误。
案例 2:var myArray = [5]
- 此方法用于定义一个数组,其中数组的长度等于方括号中传递的值的数量。这里传递的参数'5'是myArray的第0个元素的值,即myArray[0] = 5。
// Write Javascript code here //Creates an array of 5 undefined elements var arr = [5]; alert(arr[0]); alert("\n"+arr.length);
输出:
5 1
- 此方法不会预先在堆栈中创建所需大小的数组。因此,此方法需要在每次数组扩展时定义内存,这反过来又会导致 StackOverflow 错误。