Что не так с var x = new Array();

В JSLint он предупреждает, что

var x = new Array();

(Это не настоящее имя переменной)

var result = [];

Что не так с 1-м синтаксисом? Какова причина предположения?

Ответы

Ответ 2

Безопаснее использовать [], чем использовать new Array(), потому что вы действительно можете переопределить значение Array в JavaScript:

Array = function() { };

var x = new Array();
// x is now an Object instead of an Array.

Другими словами, [] недвусмыслен.

Ответ 3

Похоже, вы можете получить различную производительность, основанную на том, что вы используете, и с какой целью в зависимости от браузера или среды:

http://jsperf.com/new-array-vs-literal/11 ([1,.2] против нового массива (1,.2)), литерал быстрее работает в этом случае.

http://jsperf.com/new-array-vs-literal/7 (новый массив (500000) против [].length(500000)) новый массив быстрее в chrome v21, кажется, для этот тест примерно на 7% или 30%) в зависимости от того, что вы делаете.

Ответ 4

Ничего плохого в любой форме, но вы обычно видите литералы, где это возможно -

var s = '' не больше правильно, чем var s = new String()....

Ответ 5

Нет ничего плохого в первом синтаксисе как таковом. Фактически, на w3schools он перечисляет new Array() как способ создания массива. Проблема в том, что это "старый путь". "Новый способ", [] короче и позволяет инициализировать значения в массиве, как в ["foo", "bar"]. Большинство разработчиков предпочитают [] до new Array() с точки зрения хорошего стиля.