Лучшая практика массива Javascript для использования [] вместо нового массива?
Во многих учебниках я читал, что современные методы создания нового массива javascript используют
var arr = []
вместо
var arr = new Array()
Каковы причины этого?
Ответ 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