Negwereth, лучше подключать JavaScript в конце, т.к. время загрузки скриптов можно потратить с пользой на оформление страницы. Многие браузеры отрисовывают контент по мере загрузки страницы, и поместив подключение JS инклюдов в конец, мы тем самым ускоряем прорисовку стилей и всего что подключено до этого. Еще со времен «первого века веба» это обусловлено DOM API, который позволяет строкам добавляться к содержимому, которое пережовывает парсер, например с помощью document.write. Более современные браузеры продолжат сканировать и парсить документ в фоновом режиме и загружать нужный сторонний контент (js, картинки, css и т.д.), но отрисовка по-прежнему будет блокирована.
Вот почему гуру и специалисты производительности советуют размещать элементы script в конце документа, потому что это блокирует меньше всего контента.
А атрибут defer только откладывает выполнение скрипта до тех пор, пока вся страница не будет загружена, то есть сам скрипт будет загружаться.