Zdezorientowany przez zachowanie `map` na tablicach utworzonych przy użyciu` new` [duplikat]

To pytanie ma już odpowiedź tutaj:

Niezdefiniowane wartości w inicjatorze Array (len) 5 odpowiedzi

Jestem zdezorientowany wynikamimapping nad tablicą utworzoną za pomocąnew:

function returnsFourteen() {
    return 14;
}

var a = new Array(4);
> [undefined x 4] in Chrome, [, , , ,] in Firefox
a.map(returnsFourteen);
> [undefined x 4] in Chrome, [, , , ,] in Firefox

var b = [undefined, undefined, undefined, undefined];
> [undefined, undefined, undefined, undefined]
b.map(returnsFourteen);
> [14, 14, 14, 14]

Oczekiwałema.map(returnsFourteen) wracać[14, 14, 14, 14] (taki sam jakb.map(returnsFourteen), ponieważ zgodnie ztrona @MDN na tablicach:

Jeśli jedynym argumentem przekazanym do konstruktora Array jest liczba całkowita od 0 do 2 ** 32-1 (włącznie), tworzona jest nowa tablica JavaScript z taką liczbą elementów.

Rozumiem, że to znaczy, żea powinien mieć 4 elementy.

Czego tu brakuje?

questionAnswers(4)

yourAnswerToTheQuestion