Oi, Tom, tudo bem?
Basicamente é isso mesmo, certinho sua observação.
De fato quando o navegador encontra um <script>
no <head>
sem defer
, ele interrompe a leitura do HTML para baixar e executar o JavaScript. Se o código tentar acessar algum elemento que ainda não foi carregado no <body>
, isso acaba gerando erro. Já ao usar o atributo defer
, o navegador continua lendo o HTML enquanto baixa o script em paralelo, e só executa o código depois que a página estiver completamente carregada. Colocar o script no final do <body>
também resolve, porque nesse momento todos os elementos já estão disponíveis, permitindo que o JavaScript funcione sem problemas.
Hoje em dia, o uso de defer
é considerado a melhor prática, pois garante que o script comece a ser baixado mais cedo sem interromper a renderização da página. Continue com essa curiosidade e atenção aos detalhes, isso faz toda a diferença no aprendizado!
Bons estudos e muito sucesso ✨