Mi propuesta para solucionar este problema fue colocar el "0" al inicio de la "var¡" pues los arrays se consideran desde el 0, no del 1 y por esta razón el nombre de Superman no aparecía en los alerts.
Código
<meta charset="UTF-8">
<script>
var heroes = ["Superman", "Thor", "Batman", "Mujer Maravilla"];
for( var i = 0; i < heroes.length; i++) {
alert(heroes[i]);
}
</script>