в чем разница между new array() и [] при инициализации длины массива в javascript
В JavaScript есть несколько способов создания массивов и установки их начальной длины. Давайте рассмотрим разницу между использованием оператора new Array()
и литерала []
при инициализации длины массива.
Создание при помощи конструктора new Array()
Этот способ создания массива вызывает конструктор Array
, который имеет несколько особенностей.
Если new Array(n)
используется с одним целочисленным аргументом n
, то будет создан массив с зарезервированным местом для n
элементов. Однако это не означает, что массив будет длины n
, так как он все равно будет разреженным (sparse array). Если new Array()
вызывается без аргументов, будет создан пустой массив. При передаче двух и более аргументов, они будут рассматриваться как элементы, а не как размерность массива.
let arr1 = new Array(3); // создает массив длиной 3
console.log(arr1.length); // 3
console.log(arr1); // [empty × 3]
Создание при помощи литерала массива []
Другой способ создания массива - использовать литерал массива, который является краткой записью для вызова конструктора Array
. Когда вы используете пустые квадратные скобки []
, вы создаете пустой массив. Вы также можете инициализировать массив с элементами, перечисляя их в квадратных скобках через запятую.
let arr2 = [1, 2, 3]; // создает массив с элементами [1, 2, 3]
console.log(arr2.length); // 3
console.log(arr2); // [1, 2, 3]
Таким образом, основная разница между new Array()
и []
заключается в том, что использование new Array()
с одним аргументом дает возможность указать начальную длину массива, в то время как литерал массива []
обычно используется для создания массивов с элементами