Seria interessante que ao invés de botar a tag script dentro do body, a gente adiciona o atributo booleano "defer", assim ele garante ler todo o HTML estando dentro da tag head e mantém um código mais limpo. Sei lá, uma sugestão. E ah, o defer pode vir antes ou depois do src, por exemplo: < script defer src="main.js">< /script> ou < script src="main.js" defer>< /script>