Is adding non-numeric properties to array transforms it into different structure under the hood
<p>In JavaScript <code>array</code> is an object, so you can add non-numeric properties to it like this:</p>

<pre><code>var a = [];
a.nonNumericProperty = 4;
</code></pre>

<p>I was told that until non-numeric properties are added to an array under the hood it's represented similar to true array, while adding non-numeric properties turns it into something similar to hash-map (or whatever the name of the structure representing JavaScript objects). This makes access to the properties slower. Is this true? I've googled around but haven't found any mentioning of that.</p>

<p>Because of the relationship between <code>length</code> property and the items in array, I think that this probably is not true.</p>