Я заметил, что если:
Array(n).map(() => console.log('test'))
Однако, если я это сделаю:
Array(n).fill().map(() => console.log('test'))
Я получаю test распечатанный n раз.
Почему это так? Если я сделаю Array(n).length, я вернусь n.
Я заметил в REPL, что Array(5) возвращает:
[ , , , , ]
В то время как Array(5).fill() возвращает:
[ undefined, undefined, undefined, undefined, undefined ]
В обоих случаях typeof любой элемент массива === undefined.
Итак, что происходит?