"В чем беда, как быть?" - эмм, а кто вам сказал, что сова подключается до DOMContentLoaded? Даже больше вам скажу - 99% шанс, что сова инициализируется после этого ивента. Если вам нужно отловить инициализацию совы, то у неё есть специальные ивенты инициализации.
ldmitriy, "Async и defer не работают согласно документации?" - обожаю такие заявления. И какой же пункт из документации не выполняется?)
"относительный порядок выполнения не сохранился с defer" - эмм, а вот я во всех описанных случаях вижу что порядок сохранился: "1 2 3 4", "2 1 3 4", "1 3 4 2".
"добавил к этой переменной метод для прослушивания событий", "я думал, что все методы этой переменной тоже удаляться" - вот как раз тут логическая ошибка: переменной нельзя добавить метод, функция-обработчик для события click будет ассоциирована с элементом DOM, а не с переменной. Методов у переменных нету.
Александр Черный, если речь main.js, то во-первых загружаете вы на клиент, а не на сервер; во-вторых в ошибке всё ясно написано: "Refused to execute script from 'https://test-sayt.000webhostapp.com/js/main.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled." У вас сервер отдаёт text/html вместо application/javascript
"При загрузке на сервер блокируется slick библиотека, почему?" - можете считать меня занудой, но для меня это просто набор символов. Объясните слова "загрузка", "сервер", "блокируется" и "библиотека", а еще скажите как они связаны между собой, тогда может быть станет понятно о чем вообще речь.
"если можно просто брать и писать код", "можно поподробнее как это работает?" - учитывая эти хлесткие фразы, создаётся впечатление что вопрос скорее должен звучать как "зачем в программировании вообще нужны функции?". Я прав, такой вопрос у вас?
"можно ли считать корректной работу формы обратной связи ajax, если после отправки сообщения в полях формы остаются введённые значения" - если требуется чтобы после отправки сообщения в полях формы оставались введенные значения, то да.
"допустим на странице имеется единственный div.test - найти и манипулировать им не проблема - var test = $('div.test'), а если у нас имеется несколько подобных элементов, то вариант ранее уже не сработает, т.к. он выбирает первый попавшийся заданный элемент" - конечно нет, jQuery найдёт не первый попавшийся, а все элементы соответствующие селектору.
"циклом пробегаться" - jQuery предоставляет вам полноценный интерфейс взаимодействия с DOM, подавляющее большинство методов применяются ко всем элементам коллекции; городить над этим циклы не имеет смысла.