How are JavaScript arrays implemented?

Everything in JavaScript is an object. In the case of an Array, the length property returns the size of the internal storage area for indexed items of the array. Some of the confusion may come into play in that the [] operator works for both numeric and string arguments. For an array, if you use it with a numeric index, it returns/sets the expected indexed item. If you use it with a string, it returns/sets the named property on the array object – unless the string corresponds to a numeric value, then it returns the indexed item. This is because in JavaScript array indexes are coerced to strings by an implicit toString() call. Frankly, this is just one more of those things that makes you scratch your head and say “JavaScript, this, this is why they laugh at you.”

The actual underlying representation may differ between browsers (or it may not). I wouldn’t rely on anything other than the interface that is supplied when working with it.

You can find out more about JavaScript arrays at MDN.

Leave a Comment