Javascript массив лучше всего использовать [] вместо нового массива? - PullRequest
17 голосов
/ 31 мая 2010

Я читал во многих руководствах, что в настоящее время рекомендуется использовать

для создания нового массива javascript.
var arr = [] 

вместо

var arr = new Array()

В чем причина этого?

Ответы [ 5 ]

13 голосов
/ 31 мая 2010

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

12 голосов
/ 31 мая 2010

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

var x = [5];

отличается от того, что делает:

var x = new Array(5);

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

3 голосов
/ 31 мая 2010

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

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

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

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

 var ids = new Array(200010123);

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

1 голос
/ 15 августа 2015

Для создания массива без длины

var arr = [];

Для динамического создания массива с длиной

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

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

var arr = [];
arr.length = 10;
1 голос
/ 31 мая 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...