El código en sintaxis y estructura esta perfecto, el único problema es que las listas comienzan desde la posición 0 de manera que el conteo comienza desde este número hasta el final lo único que tendría que cambiar seria la estructura de la iteración "FOR", ósea i = 0.
var heroes = ["Superman", "Thor", "Batman", "Mujer Maravilla"];
for( var i = 0; i < heroes.length; i++) {
alert(heroes[i]);
}