Вопросы к Поиску с Алисой
Атрибут defer используется для скриптов, которым требуется доступ ко всему DOM-дереву, потому что он позволяет скриптам получать доступ к DOM и манипулировать им после его полной сборки. www.geeksforgeeks.org
Скрипты с атрибутом defer выполняются до запуска события DOMContentLoaded, что даёт возможность работать с DOM-деревом. www.geeksforgeeks.org
Кроме того, атрибут defer обеспечивает правильную последовательность выполнения скриптов, что важно, например, когда сначала нужно загрузить JavaScript-библиотеку, а затем скрипт, который от неё зависит. learn.javascript.ru