Подтвердить что ты не робот

Лучшая практика массива Javascript для использования [] вместо нового массива?

Во многих учебниках я читал, что современные методы создания нового массива javascript используют

var arr = [] 

вместо

var arr = new Array()

Каковы причины этого?

4b9b3361

Ответ 1

Возможно, это связано с тем, что объект Array может быть перезаписан в JavaScript, но запись литерала массива невозможна. См. этот ответ для примера

Ответ 2

Также обратите внимание, что выполнение:

var x = [5];

Отличается от того:

var x = new Array(5);

Первый создает инициализацию массива с одним элементом со значением 5. Позднее создает инициализацию массива с 5 элементами undefined.

Ответ 3

Это меньше печатает, что в моей книге всегда выигрывает: -)

Как только я исправил странную ошибку на одной из наших страниц. На странице было необходимо создать список числовых ключей базы данных в виде массива Javascript. Ключи всегда были большими целыми числами (высокий бит всегда устанавливался как индикатор). Исходный код выглядел так:

 var ids = new Array(${the.list});

Ну, угадайте, что произошло, когда в списке было только одно значение?

 var ids = new Array(200010123);

что означает, "создайте массив и инициализируйте его так, чтобы было 200 миллионов пустых записей".

Ответ 4

Обычно используется литерал массива (var a = [1,2,3] или = []).

Но время от времени вам нужен массив, в котором сама длина является определяющей функцией массива.

var A = Array (n) будет (с использованием литерала) нуждаться в двух выражениях -

var A = []; A.length = п;

В любом случае вам не нужен "новый" оператор с конструктором Array, не так, как вам нужно "новое" с новым объектом Date, скажем.

Ответ 5

Чтобы создать массив без длины

var arr = [];

Чтобы создать массив с длиной более динамически

var arr;
( arr = [] ).length = 10;  // 10 is array length

Чтобы создать массив с длиной менее динамически

var arr = [];
arr.length = 10;