Comme d'autres l'ont dit, lorsque vous mettez du javascript dans la tête, cela retarde le rendu de la page jusqu'à ce que les scripts aient été chargés, ce qui signifie que le chargement de la page peut prendre plus de temps - surtout si vous téléchargez de gros fichiers de script.
Si vous déplacez vos balises de script à la fin de la page, vous vous assurerez que le navigateur télécharge les images et les feuilles de style avant les balises de script et la page apparaîtra probablement pour être rendue avant que les scripts ne commencent à s'exécuter. Cela signifie également que si vous dépendez de certaines fonctionnalités de vos scripts, cela ne sera disponible qu'un peu après que la page soit visible par l'utilisateur.
Si vous ajoutez des styles ou des éléments (etc. en changeant de champs de texte avec une forme d'éditeur plus riche), cela sera visible par l'utilisateur sous forme de scintillement.
Si vous ajoutez des événements de clic à des éléments, ils ne seront cliquables qu'un peu après que les éléments eux-mêmes soient visibles.
Parfois, ces problèmes vous obligent à mettre vos scripts dans la tête, d'autres fois, tout ira bien en les collant en bas.
IMHO (complètement contre YSlow et beaucoup de gens intelligents), vous devriez garder vos scripts dans la balise head, et comptez simplement sur eux pour être mis en cache la plupart du temps.