Ответ
Когда браузер получает <script>, он приостанавливает парсинг HTML и начинает загрузку (если src указан) и выполнение скрипта. По умолчанию скрипты блокируют рендеринг.
Атрибуты, влияющие на поведение:
async– скрипт загружается асинхронно и выполняется сразу после загрузки, не блокируя парсинг.defer– скрипт загружается асинхронно, но выполняется после полного парсинга HTML, передDOMContentLoaded.
Пример:
<script src="app.js" defer></script> <!-- выполнится после DOM -->
<script src="analytics.js" async></script> <!-- выполнится при готовности -->Важно: инлайновые скрипты (<script>код</script>) выполняются мгновенно, если нет атрибутов async/defer.