📜  声明 JavaScript 数组时,“Array()”和“[]”有什么区别?

📅  最后修改于: 2022-05-13 01:56:38.391000             🧑  作者: Mango

声明 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 错误。