В чем преимущества использования
var foo = [];
с использованием
var bar = new Array();
Мне сказали использовать [] над новым массивом(), но никогда с большим количеством объяснений
В чем преимущества использования
var foo = [];
с использованием
var bar = new Array();
Мне сказали использовать [] над новым массивом(), но никогда с большим количеством объяснений
Основной причиной использования []
в отличие от new Array()
являются аргументы, которые вы передаете. Когда вы используете new Array(10)
, вы создаете пустой массив с 10 элементами, но когда вы используете [10]
, вы создаете массив с одним элементом, значение которого 10
. Поскольку это, как правило, информация, которую большинство программистов хотят передать массиву (поскольку массивы являются динамическими в Javascript), это обычно считается лучшей практикой. Также new Array(10,20)
работает иначе, чем new Array(10)
. В этом случае вы имеете тот же эффект, что и [10,20]
, который должен создать массив с 2 элементами, 10 и 20. Так как это... странно в лучшем случае... легко создать пустой массив, пройдя new Array()
только одно значение. []
всегда имеет тот же эффект, поэтому я также рекомендую придерживаться его.
new Array(10)
и new Array("10")
совсем другие)Оба могут использоваться как хорошие. Эта дискуссия/путаница началась с того момента, как гуру Javascript Дуглас Крокфорд сказал, что new
ключевое слово считается вредным. С тех пор считалось "хорошей практикой/техникой" оставить ключевое слово new
, чтобы избежать неожиданных результатов/поведения. Также см. Этот раздел "Стоп-потоки" .
Три причины (первые два расширены в других ответах):
Array
был перезаписан.Ненаркотические причины:
new
. Не бойтесь new
только потому, что Дуглас Крокфорд когда-то его укусил. Это чрезвычайно полезно.Это забивает вам меньше символов в поле для гольфа.
Это то же самое. Единственная причина использовать []
над new Array()
заключается в том, что она короче.
короче и чище. Должен использовать {} для создания объектов.