Ответ
Да, скрипт должен быть загружен перед выполнением. Есть несколько способов управления этим:
- Обычная загрузка (блокирующая):
<script src="script.js"></script>
- Атрибуты для управления загрузкой:
async- загружает скрипт асинхронно, выполняется сразу после загрузкиdefer- загружает асинхронно, но выполняется после полной загрузки DOM
<script async src="script.js"></script>
<script defer src="script.js"></script>
- Динамическая загрузка:
const script = document.createElement('script');
script.src = 'script.js';
document.body.appendChild(script);
Важно: скрипты, зависящие от DOM, должны либо использовать defer, либо быть размещены перед закрывающим тегом </body>.