Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

eu declaro a tag script no HTML no inicio ou fim do código?

Ao finalizar esse curso de Js eu vi que ele manteve no HTML os arquivos no final do Body. Eu sei que ele fez isso pois, caso contrário, o HTML ia dar erro, pois a leitura do arquivo é feita de cima para baixo. Porém, eu vi em outro curso na internet onde o instrutor colocou ta tag script do html no HEAD ( se não me engano) da página e ela funcionou da mesma maneira.

Como sou um mero iniciante nessa área, quando vi isso, na mesma hora fiquei com um ponto de interrogação na cabeça. Daí, surgiu a minha dúvida: Quando o posicionamento da tag script afeta o funcionamento de uma página? A sua declaração seria uma convenção ou não?

2 respostas
solução!

Olá Pedro, tudo bem com você?

Como você mesmo disse, a leitura é feito de cima para baixo, e com isso o ideal é que a parte mais pesada do nosso código fique no final, para não causar demora com a renderização e estilização da página

Outro ponto é capturar elementos, então suponha um código bem simples, até sem a importação:

<body>
    <p class="teste"> Olá isto é um teste </p>
</body>

Agora vamos adicionar dois códigos iguais

    <script>
        const valorAntes = document.querySelector('.teste')
        console.log(valorAntes)
    </script>

<body>
    <p class="teste"> Olá isto é um teste </p>
</body>

    <script>
        const valorApos = document.querySelector('.teste')
        console.log(valorApos)
    </script>

E você verá que temos como resultado:

null
<p class="teste">

Algumas tags, por exemplo, de analytics ( do Google, Facebook), podem ser colocadas no começo do body, para conseguir fazer algumas operações antes da página terminar de renderizar completamente

Entretanto, scripts que irão interagir com o html, que tem um tamanho considerável, a convenção é deixar no final do body para não proporcionar uma experiência ruim para o usuário, ou não capturar corretamente os elementos

Abraços e Bons Estudos!

Obrigado, Geovani! Excelente explicação!