buenas...
de lo que recuerdo haber leido... los arrays -al igual que los objetos- son datos
compuesto. lo que significa que la cantidad de memoria que ocupa es variable segun la cantidad y tipos de datos. en el siguiente ejemplo, es de mi opinion que ambos arrays ocupan casi lo mismo. tambien depende mucho del algoritmo interno del interprete al ocupar memoria, o sea el mecanismo del garbage collector.
Código:
foo = new Array(10);
bar = new Array(10000);
en el ejemplo anterior todos los elementos carecen de valor (undefined). undefined es un valor interno fijo -que supongo yo- no ocupa memoria o en el caso de ocupar seguramente seria una cantidad de bits bien reducido.