Tanto JavaScript como CSS son recursos bloqueantes. Esto quiere decir que cada vez que el navegador encuentra estos archivos, debe parar e interpretarlos mientras sigue haciendo parsing del HTML.
Script por defecto
bloquea el parsing durante la descarga y ejecución del script
Script Defer
descarga el script JS pero no lo ejecuta hasta que se finaliza el parsing del HTML.
Script Async
descarga el script JS durante el parsing y una vez se termine de descargar lo ejecuta inmediatamente, bloqueando solo una “pequeña” parte del parsing.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?