Я вижу четыре пять вариантов инициализации массива определенной длины в JS (последний - растяжение, я знаю):
var a = []; a.length = 5;
var a = Array(5);
var a = []; a[4] = undefined;
var a = new Array(5);
function makeArrayToLength(length, default){
var a = [], i = 0;
for(; i < length; i++){
a[i] = default;
}
return a;
}
Я определенно хочу (и использую) литерал, когда это возможно, но я нахожусь в ситуации, когда определяющим аспектом конкретного массива является его длина, поэтому я склоняюсь к Array (5). Эквивалентен ли первый пример второму с точки зрения конечного результата? Я понимаю, что это не эквивалент в исполнении.