1

new Array(n) generates an array of empty numbers. e.g. new Array(5) generates [empty × 5]

[...new Array(n)] generates an array of undefined numbers. e.g. [...new Array(5)] generates [undefined, undefined, undefined, undefined, undefined]

Which part of the process converts empty values in undefined values?

Ben Butterworth
  • 22,056
  • 10
  • 114
  • 167

1 Answers1

1

Spread Operator creates a new array of same length, copying all elements from source array.

for (let i = 0; i < source.length; i++)
   destination[i] = source[i] // Which is evaluated to `undefined`

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

One interesting thing to do here is to check what transpilers will do:

Both Babel and TypeScript transpile to the same loop iterating over source array, so passing through each undefined value.

kube
  • 13,176
  • 9
  • 34
  • 38