new Array と forEach

var a = new Array(10);
a.forEach(function(b){
    b = "hoge";
});
a.forEach(function(b){
    document.write(b);
});

これは動かない。 new Array() で確保された配列の要素は undefined で、 undefined に "hoge" を代入することはできないのだろう。

var a = new Array();
for(i = 0; 10 > i; i++){
    a[i] = "hoge";
}
a.forEach(function(b){
    document.write(b);
});

こちらは大丈夫。 空の配列を作って要素を足していくのが良いらしい。