No código do Bruno, ele declarou o .length com <= então estava contando como se tivesse com 4 elementos (1 á 4)
<meta charset="utf-8">
<script>
var letras = ['A', 'B', 'C', 'D'];
for( var i = 0; i <= letras.length; i++ ) {
alert(letras[i]);
}
</script>
Mas no Java Script as Arrays começam com 0 como 1 elemento (0 á 3)
<meta charset="utf-8">
<script>
var letras = ['A', 'B', 'C', 'D'];
for( var i = 0; i < letras.length; i++ ) {
alert(letras[i]);
}
</script>