В чем разница между Array() и [] в Javascript и почему мне следует использовать один вместо другого?[дубликат]

StackOverflow https://stackoverflow.com/questions/2203734

  •  18-09-2019
  •  | 
  •  

Вопрос

Возможный дубликат:
В чем разница между «Array()» и «[]» при объявлении массива JavaScript?

В JavaScript вы можете создать новый массив, например:

var arr = new Array();

или типа:

var arr2 = [];

В чем разница и почему вы предпочитаете одно другому?

Это было полезно?

Решение

new Array(2) гордится массивом размеров 2, содержащий два undefinedс. [2] создает массив размера 1, содержащий число 2. new Array IMO не соответствует духу JavaScript, хотя это может сделать построение массива гораздо более доступным для поиска.Это может иметь, а может и не иметь никакого значения (я использую литералы почти исключительно в JavaScript для всех применимых типов, и я успешно написал/поддерживал большие фрагменты JavaScript [30-50 KLOC]).

редактировать Я думаю, причины, по которым опытные программисты JavaScript избегают new Array синтаксис:

  • он не ведет себя одинаково для разных номеров и типов аргументов ((new Array(X)).length == 1 для любого X пока typeof(X) != "number"
  • это более многословно, и единственное, что вы получаете, это неравномерность

Другие советы

Другая (незначительная) причина использовать [] в предпочтении new Array() в том, что Array потенциально может быть переопределен (хотя я никогда не видел, чтобы это происходило) и [] гарантированно работает.

Array = "something";
var a = new Array(); // Fails
var b = []; // Works

Я считаю, что они идентичны.Я никогда не использую new Array();

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top