JavaScript с нуля: меняем текст на странице по клику

Я бы начинал JavaScript не с переменных, типов и истории языка, а с маленького видимого действия: была обычная статичная страница, нажали кнопку, текст на странице изменился

Именно в этот момент JavaScript перестает быть словом из вакансий и становится поведением интерфейса. HTML отвечает за структуру, CSS — за внешний вид, а JavaScript — за реакцию: клик, ввод текста, отправку формы, раскрытие меню, запрос к серверу, счетчик, фильтр, модальное окно

В этом уроке сделаем первый рабочий пример. Без сборщиков, без React, без Node.js. Только один HTML-файл, кнопка и немного JavaScript

Что получится в конце

У нас будет страница с текстом, кнопкой и счетчиком кликов. После нажатия текст изменится, а число кликов увеличится

Итоговый код можно открыть в обычном браузере:

<!doctype html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Первый JavaScript</title>
</head>
<body>
  <h1>JavaScript с нуля</h1>
  <p class="message">Пока кнопка не нажата.</p>
  <button class="change-button">Изменить текст</button>
  <p class="counter">Кликов: 0</p>

  <script>
    const message = document.querySelector(".message");
    const button = document.querySelector(".change-button");
    const counter = document.querySelector(".counter");

    let clicks = 0;

    button.addEventListener("click", () => {
      clicks = clicks + 1;
      message.textContent = "Теперь текст изменился через JavaScript.";
      counter.textContent = `Кликов: ${clicks}`;
    });
  </script>
</body>
</html>

Что JavaScript делает на сайте

Если коротко, JavaScript добавляет странице поведение. На MDN JavaScript описывают как язык, который позволяет делать сложные возможности на веб-страницах: обновлять содержимое, реагировать на действия пользователя, работать с интерактивными элементами

В реальном сайте JavaScript может:

  • открыть меню по клику;
  • проверить форму перед отправкой;
  • показать подсказку;
  • загрузить товары без перезагрузки страницы;
  • сделать слайдер;
  • сохранить настройку темы;
  • отправить запрос на сервер;
  • отрисовать график или карту.

Но первый шаг лучше сделать совсем маленьким. Если ты понял кнопку, текст и событие клика, дальше будет проще понять формы, модальные окна и запросы

Создаем HTML-заготовку

Создай файл index.html и вставь:

<!doctype html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Первый JavaScript</title>
</head>
<body>
  <h1>JavaScript с нуля</h1>
  <p class="message">Пока кнопка не нажата.</p>
  <button class="change-button">Изменить текст</button>
  <p class="counter">Кликов: 0</p>
</body>
</html>

Открой файл в браузере двойным кликом. Пока это просто HTML: текст и кнопка есть, но кнопка ничего не делает

Добавляем script

Перед закрывающим тегом </body> добавим:

<script>
  console.log("JavaScript подключился");
</script>

Открой страницу, нажми правой кнопкой мыши, выбери Inspect или "Просмотреть код", затем вкладку Console. Если видишь сообщение, JavaScript действительно выполняется

Почему script ставим перед </body>? Потому что к этому моменту браузер уже успел прочитать кнопку и текст. Новичок часто ставит скрипт в head, а потом JavaScript не находит элементы, которых еще нет на странице

Находим элементы через querySelector

Теперь найдем текст, кнопку и счетчик:

const message = document.querySelector(".message");
const button = document.querySelector(".change-button");
const counter = document.querySelector(".counter");

document.querySelector(".message") ищет первый элемент с классом message. Точка перед именем класса такая же, как в CSS

Если написать класс с ошибкой:

document.querySelector(".messege");

JavaScript вернет null. Потом при попытке что-то сделать с этим null появится ошибка. Поэтому селекторы проверяем внимательно

Реагируем на клик

Чтобы кнопка начала работать, нужен слушатель события:

button.addEventListener("click", () => {
  message.textContent = "Теперь текст изменился через JavaScript.";
});

addEventListener можно прочитать так: "когда у кнопки произойдет событие click, выполни эту функцию"

MDN описывает addEventListener как метод для добавления обработчика к событию объекта. Для новичка важен практический смысл: мы не запускаем код сразу, мы говорим браузеру, что делать потом, когда пользователь нажмет кнопку

Добавляем счетчик кликов

Сейчас текст меняется, но хочется видеть, сколько раз нажимали кнопку. Добавим переменную:

let clicks = 0;

И обновим обработчик:

button.addEventListener("click", () => {
  clicks = clicks + 1;
  message.textContent = "Теперь текст изменился через JavaScript.";
  counter.textContent = `Кликов: ${clicks}`;
});

let clicks = 0 создает переменную, которую можно менять. Каждый клик увеличивает ее на 1

Строка:

`Кликов: ${clicks}`

называется шаблонной строкой. Она удобна, когда внутрь текста нужно вставить значение переменной

Полный код

Вот полный файл:

<!doctype html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Первый JavaScript</title>
</head>
<body>
  <h1>JavaScript с нуля</h1>
  <p class="message">Пока кнопка не нажата.</p>
  <button class="change-button">Изменить текст</button>
  <p class="counter">Кликов: 0</p>

  <script>
    const message = document.querySelector(".message");
    const button = document.querySelector(".change-button");
    const counter = document.querySelector(".counter");

    let clicks = 0;

    button.addEventListener("click", () => {
      clicks = clicks + 1;
      message.textContent = "Теперь текст изменился через JavaScript.";
      counter.textContent = `Кликов: ${clicks}`;
    });
  </script>
</body>
</html>

Сохрани файл и обнови страницу в браузере. Нажимай кнопку несколько раз. Если счетчик растет, первый JavaScript-сценарий работает

Частые ошибки

Скрипт подключен раньше HTML

Если скрипт стоит в head, а ты сразу ищешь кнопку, браузер может еще не успеть создать элемент

Простой вариант для первых уроков: ставить script перед </body>

Ошибка в селекторе

В HTML:

<button class="change-button">Изменить текст</button>

В JavaScript должно быть:

document.querySelector(".change-button");

Если написать .change_btn, кнопка не найдется

Забыли кавычки вокруг события

Правильно:

button.addEventListener("click", () => {});

Неправильно:

button.addEventListener(click, () => {});

Без кавычек JavaScript будет искать переменную click, а не название события

Смотрят на страницу, но не открывают Console

Когда что-то не работает, первым делом открой Console. JavaScript часто прямо говорит, на какой строке ошибка. Не нужно гадать глазами

Мини-задания

  1. Измени текст кнопки после первого клика.
  2. Сделай так, чтобы заголовок тоже менялся.
  3. Добавь второй абзац и меняй его цвет.
  4. Увеличивай счетчик на 2 вместо 1.
  5. Если кликов больше 5, покажи текст "Хватит тестировать, все работает".

Подсказка для пятого задания:

if (clicks > 5) {
  message.textContent = "Хватит тестировать, все работает.";
}

Ответы на эти вопросы могут быть для вас полезными

Нужно ли скачивать JavaScript?

Для первого урока нет. JavaScript уже выполняется в браузере. Тебе нужен браузер, текстовый редактор и HTML-файл

Где писать JavaScript-код?

На старте можно писать прямо внутри тега script в HTML. Потом удобнее вынести код в отдельный файл script.js

Можно ли учить JavaScript без HTML?

Можно изучать синтаксис отдельно, но для веба лучше сразу знать минимум HTML. JavaScript часто работает именно с элементами страницы

Что такое консоль браузера?

Это вкладка DevTools, где видны сообщения console.log и ошибки JavaScript. Для обучения она почти так же важна, как сам редактор кода

Чем JavaScript отличается от Java?

Это разные языки с разной историей и экосистемами. Похожие названия не означают, что JavaScript — это версия Java

Что почитать дальше по JavaScript

Чтобы двигаться по теме без рывков, рядом лучше открыть:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x