В чем разница между Array() и [] в Javascript и почему мне следует использовать один вместо другого?[дубликат]
-
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();