DivMan,
Не нужен там цикл for. Вы вызвали 32 setInterval которые никогда не останавливаются и муть какую-то в консоль пишут.
можно так сделать
var mes = ['Э', 'т', 'о', 'т', ' ', 'т', 'е', 'к', 'с', 'т', ' ',
'в', 'ы', 'в', 'о', 'д', 'и', 'т', 'с', 'я', ' ', 'п', 'о', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'ь', 'н', 'о'];
var a = 0;
var interval = setInterval(function(){
if (a >= mes.length-1) clearInterval(interval);
document.getElementsByTagName('h1')[0].innerHTML += mes[a];
a++;
}, 100);
Оптимизацией сами займитесь, адаптируйте для себя, в функцию запилите или в событие, может проверку сделать надо не пустой ли h1 и т.д
И кстати не обязательно массив перебирать, можно простую строку.