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

Преимущества использования [] над новым массивом() в JavaScript

В чем преимущества использования

var foo = []; 

с использованием

var bar = new Array();

Мне сказали использовать [] над новым массивом(), но никогда с большим количеством объяснений

4b9b3361

Ответ 1

Основной причиной использования [] в отличие от new Array() являются аргументы, которые вы передаете. Когда вы используете new Array(10), вы создаете пустой массив с 10 элементами, но когда вы используете [10], вы создаете массив с одним элементом, значение которого 10. Поскольку это, как правило, информация, которую большинство программистов хотят передать массиву (поскольку массивы являются динамическими в Javascript), это обычно считается лучшей практикой. Также new Array(10,20) работает иначе, чем new Array(10). В этом случае вы имеете тот же эффект, что и [10,20], который должен создать массив с 2 элементами, 10 и 20. Так как это... странно в лучшем случае... легко создать пустой массив, пройдя new Array() только одно значение. [] всегда имеет тот же эффект, поэтому я также рекомендую придерживаться его.

Ответ 2

  • короче
  • аргументы Array запутываются (например, new Array(10) и new Array("10") совсем другие)

Ответ 3

Оба могут использоваться как хорошие. Эта дискуссия/путаница началась с того момента, как гуру Javascript Дуглас Крокфорд сказал, что new ключевое слово считается вредным. С тех пор считалось "хорошей практикой/техникой" оставить ключевое слово new, чтобы избежать неожиданных результатов/поведения. Также см. Этот раздел "Стоп-потоки" .

Ответ 4

Три причины (первые два расширены в других ответах):

  • Более короткие;
  • Позволяет создавать массивы с одним элементом, как описано в ответе Чибу;
  • Работает даже в маловероятном случае, когда конструктор Array был перезаписан.

Ненаркотические причины:

  • Избегание оператора new. Не бойтесь new только потому, что Дуглас Крокфорд когда-то его укусил. Это чрезвычайно полезно.

Ответ 5

Это забивает вам меньше символов в поле для гольфа.

Ответ 6

Это то же самое. Единственная причина использовать [] над new Array() заключается в том, что она короче.

Ответ 7

короче и чище. Должен использовать {} для создания объектов.