La razón por la que al ejecutarse el siguiente código no se muestra el nombre "Superman" es por que el primer índice de un arreglo es el 0, no el uno, al inicializar la variable "i" en 1 lo que hace "alert(heroes[i]);" es mostrar "Thor", el cuál se encuentra en el índice 1.
var heroes = ["Superman", "Thor", "Batman", "Mujer Maravilla"];
for( var i = 1; i < heroes.length; i++) {
alert(heroes[i]);
}
Lo correcto para que se mostrará "Superman" sería lo siguiente:
var heroes = ["Superman", "Thor", "Batman", "Mujer Maravilla"];
for( var i = 0; i < heroes.length; i++) {
alert(heroes[i]);
Así se comienza desde el primer valor y no desde el segundo.