Как подключить JavaScript к HTML: script теги и модули

Если ты хоть раз пытался оживить свой HTML-код, тебе точно понадобился JavaScript. Без него сайты были бы просто скучными страницами для чтения, а не интерактивными приложениями. Сегодня разберём, как правильно подключать JavaScript к HTML: классика через <script>, навороты с модулями, а ещё расскажу, как не наступить на грабли.

 

Зачем вообще подключать JavaScript к HTML?

Всё просто: чтобы добавить интерактив. Хочешь ловить клики, отправлять формы без перезагрузки, строить динамические графики или тащить данные с сервера? Без JS никуда. Но чтобы он заработал, его надо правильно внедрить в HTML. И вот тут есть нюансы, которые могут здорово повлиять на производительность и удобство поддержки твоего кода.

Что потребуется

  • Любая современная ОС: Windows, Mac, Linux — не важно.
  • Браузер (Chrome, Firefox, Edge, Safari — любой, только не IE).
  • Текстовый редактор: VSCode, Sublime, Notepad++ или даже vim.
  • Железо? Подойдёт даже Raspberry Pi, если не запускаешь тяжёлые фреймворки.
  • Интернет — чтобы посмотреть официальную доку, если что-то не работает.

Установка — пошаговая инструкция

  1. Создай HTML-файл.
    <!DOCTYPE html>
    <html lang="ru">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <!-- Скрипт подключим ниже -->
    </head>
    <body>
      <h2>Пример JS-подключения</h2>
    </body>
    </html>
    
  2. Вариант 1: Встраиваемый скрипт.
    Просто вставь JS-код прямо в HTML-файл:

    <script>
      alert('Привет из JavaScript!');
    </script>
    

    Обычно вставляют перед </body>, чтобы страница успела загрузиться.

  3. Вариант 2: Внешний JS-файл.
    Создай файл main.js:

    // main.js
    console.log('JS подключён!');
    

    Подключи его так:

    <script src="main.js"></script>
    

    Опять же, лучше перед </body>.

  4. Вариант 3: Модули (ES6 Modules).
    Модули позволяют импортировать/экспортировать функции и переменные между файлами. Для этого нужен type="module":

    <script type="module" src="main.js"></script>
    

    Теперь в main.js можно писать:

    import { sayHello } from './utils.js';
    sayHello();
    

    А в utils.js:

    export function sayHello() {
      console.log('Привет из модуля!');
    }
    
  5. Атрибуты defer и async для оптимизации.
    • defer — скрипт загрузится параллельно с HTML, но выполнится после полной загрузки DOM.
    • async — скрипт загрузится и выполнится сразу, как только загрузится, не дожидаясь HTML.

    Обычно для модулей defer не нужен: <script type="module" src="..."></script> ведёт себя как defer по умолчанию.

Использование: полный список вариантов

  • Встроенный JS:
    <script>
      // твой код здесь
    </script>
    
  • Внешний файл:
    <script src="script.js"></script>
    
  • Модуль:
    <script type="module" src="module.js"></script>
    
  • defer:
    <script src="script.js" defer></script>
    
  • async:
    <script src="script.js" async></script>
    
  • Импорт модулей:
    // module.js
    export function foo() { ... }
    
    // main.js
    import { foo } from './module.js';
    foo();
    

Подробнее: MDN: <script>

Ошибки — как делать не надо

  • Не пихай скрипты в <head> без defer или async. Блокируешь загрузку страницы, UX страдает.
  • Не подключай модули без type="module". Импорт/экспорт работать не будет.
  • Пути к файлам. src="js/main.js" — путь должен быть корректным относительно HTML-файла.
  • Не смешивай модули и обычные скрипты в одном файле. Будет больно дебажить.
  • Не забудь про CORS. Если открываешь HTML-файл напрямую из файловой системы, import может не работать — лучше подними локальный сервер (например, python3 -m http.server).

Пример реального использования

Допустим, ты делаешь dashboard и хочешь подгрузить статистику через модуль. Структура:

index.html
js/
  main.js
  stats.js

index.html:

<body>
  <div id="stats"></div>
  <script type="module" src="js/main.js"></script>
</body>

js/stats.js:

export function getStats() {
  return { users: 42, uptime: '99.9%' };
}

js/main.js:

import { getStats } from './stats.js';
const stats = getStats();
document.getElementById('stats').textContent = 
  `Пользователей: ${stats.users}, Аптайм: ${stats.uptime}`;

Всё, теперь твой JS — модульный, современный и готов к масштабированию.

Заключение

Подключать JavaScript к HTML — не rocket science, но нюансы есть. Используй <script> с умом, не забывай про type="module" для модулей, и не бойся экспериментов. Пиши чисто, оптимизируй загрузку, и твой фронт будет летать. Если что-то не работает — MDN JavaScript Guide тебе в помощь.

Хотите прочитать больше про Администрирование?
Отзывов нет.

Ваш отзыв

Пожалуйста, заполните поля снизу и добавьте отзыв!.
Имя *
E-mail *
Сайт
Сообщение *