И с defer тоже не должен сначала загрузитться html, а потом скрипт?
У меня сначала выводится alert, потом текст.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf‐8">
</head>
<body>
<p>К сожалению, чтобы комфортно работать с языком, нужно учить его с детства. С раннего. Как минимум лет с пяти. Но не все потеряно - при желании выучить можно, но сил будет затрачено многократно больше, с меньшим результатом.
</p>
<p>Кино с сабами тоже работает. У меня так жена испанский подняла с уровня "когда-то учила с репетитором год" до "практически свободно разговариваю и читаю\пишу".</p>
<script defer src="script.js">
</script>
</body>
</html>
в файле скрипта
alert('Я - Javascript!')