Любой ли скрипт блокирует парсинг HTML

«Любой ли скрипт блокирует парсинг HTML» — вопрос из категории HTML, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, не любой. Обычно блокируют только синхронные скрипты без атрибутов async или defer.

Браузер при парсинге HTML останавливается, когда встречает <script> без этих атрибутов, загружает и выполняет его, прежде чем продолжить.

Примеры:

<!-- Блокирует парсинг -->
<script src="script.js"></script>

<!-- Не блокирует (загружается асинхронно) -->
<script async src="script.js"></script>

<!-- Не блокирует (выполняется после парсинга) -->
<script defer src="script.js"></script>

Также инлайновые скрипты (<script>код</script>) всегда блокируют парсинг, если нет атрибута async или defer.