Das kommt davon, dass die for-Schleife gar nicht durchlaufen wird. Im Gegensatz zu Basic bedeutet der zweite Parameter zu for nicht "bis dies eintritt", sondern "solange dies wahr ist".
Mach es so, das müsste klappen:
var zeichenkette = "hallo";
var z = 0;
for ( i = 0 ; i <= 5 ; i++ ) {
if ( zeichenkette.charAt(z) == "a" ) {
alert ("klappt");
} else {
alert("klappt nicht");
}/*else beenden*/
z++;
} /*for beenden*/