Нет. Браузер обрабатывает текст кода последовательно сверху вниз. Когда он встречает <script> то просто выполняет его, потом идет дальше и снова начинает парсить html
<!doctype html>
<script>
let i = document.getElementById("txt");
window.onload = init;
function init (){
alert(i);
}
</script>
<body>
<p1 id="txt">Something</p1>
</body>
Сначала выполнится строка
3 let i = document.getElementById("txt");
Но строка
<p1 id="txt">Something</p1>
еще не разобрана, и элемент с id="txt" не может быть найден