Estava dando "undefined" na última posição pois não tem nenhum valor na posição 4. Pois ao utilizar "<=" estava retornando "true" ao verificar posição 4 mas dentro do array não tem nenhum valor nessa posição, assim para retornar apenas os valores que consta dentro do array foi retirado "<=" e colocado "<", assim ao chegar na verificação da posição 4 o retorno será "false".
var letras = ['A', 'B', 'C', 'D'];
for( var i = 0; i < letras.length; i++ ) {
alert(letras[i]);
}