> Всегда ли JavaScript выполняется после события onload (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Garage Eight

Стек: JavaScript

> Пример ответа

Нет, не всегда. Событие onload срабатывает, когда страница полностью загружена, включая все ресурсы (изображения, стили, скрипты). Однако JavaScript может выполняться как до, так и после этого события в зависимости от расположения скрипта и его атрибутов.

  • Скрипты без атрибутов (обычные <script> в <head> или в начале <body>) выполняются синхронно, блокируя парсинг HTML, и завершаются задолго до onload.
  • Скрипты с атрибутом async загружаются асинхронно и выполняются сразу после загрузки, не дожидаясь onload.
  • Скрипты с атрибутом defer выполняются после полного парсинга HTML, но до события DOMContentLoaded, которое наступает раньше onload.
  • Скрипты, размещённые в конце <body> (перед закрывающим тегом), выполняются после парсинга DOM, но до загрузки тяжёлых ресурсов, то есть до onload.

Таким образом, JavaScript может выполняться в любой момент жизненного цикла страницы. Чтобы гарантировать выполнение кода после полной загрузки, нужно явно подписываться на событие window.onload или использовать DOMContentLoaded (если не нужны ресурсы).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью