Hola
El lugar que hoy en día se prefiere es justamente antes de la etiqueta </body> sobre todo si vas a modificar el dom. Piensa que antes de poder hacer cualquier acción o modificación sobre un elemento, este ha de estar cargado.
En cambio si vas a validar un formulario lo puedes poner entre las etiquetas <head> y </head>. Siguiendo con insertar el js entre <head> puedes usar
window.onload = funcition(){funcion();};, con ello no tendrás problema con el dom, puesto que no se ejecutará hasta que la página esté totalmente cargada. Otra manera similar a la anterior sería llamar a la función antes de </body>
Cita: <script type="text/javascript">
funcion()
</script>
Esta última manera es interesante usarla si incluyes el js tal y como te he mencionado anteriormente
@mortiprogramador
Suerte