Array in JavaScript is actually object:
- automatically maintains indexed values and
lengthproperty. - its constructor is
Arraywhich provides some methods to be inherited, e.g.forEach. - may use non-sequence memory since it's an object.
Array in C is different, it always uses sequence memory, at this point, it is real array.
So what it means?
Indexes of an array returned by new Array(3) are even not defined, which just means this object (array is object) has no properties '0', '1', '2'. So check like in operation returns false and forEach interator skips these properties.
Diffrent in C, indexes of an array means offset from the address of first element, so you can always access via index, take no account of what's in the memory unit.
P.S.
As for pseudo array in JavaScript, it is also an object:
- but not inherit from
Array.prototype, which means it has no methods e.g.forEach. - it may has
lengthproperty, but do not automatically maintains it, e.g.arguments.