До сих пор ваши страницы были «картинкой»: красиво, но неживые. Кнопка ничего не делает, форма ничего не проверяет. JavaScript — это то, что оживляет страницу: считает сумму в корзине, показывает ошибку в форме, открывает меню. Сегодня вы подготовите рабочее место, запустите первый скрипт и научитесь главному инструменту программиста — консоли.
Объяснить, как браузер выполняет JavaScript и чем он отличается от HTML и CSS
Подключить скрипт на страницу тремя способами и выбрать правильное место для <script>
Пользоваться консолью: console.log, warn, error, table — и читать сообщения об ошибках
Открыть DevTools и найти в них Elements, Console и Sources
Установить VS Code, расширения и Live Server, запустить первый скрипт на своём компьютере
Знать правила работы с ИИ на курсе и понимать, чем чат, автодополнение и агент отличаются друг от друга
Как работать с этой страницей
Весь код на тёмном фоне с кнопкой ▶ Запустить — живой. Его можно менять прямо здесь и сразу видеть результат в консоли под ним. Сломали — нажмите ↺ Сброс. Окна с вкладками index.html / script.js — мини-страницы: сверху код, снизу превью. Подсказки к задачам спрятаны: сначала попробуйте сами. Блоки с надписью «Терминал» или «Только чтение» запускать нельзя — это инструкции для вашего компьютера.
Важно: окна alert, prompt и confirm на этой странице заблокированы браузерной «песочницей», в которой работает код. Поэтому их мы разберём на примерах для чтения, а запускать будете на своей странице в VS Code.
01 Как JavaScript работает в браузере
Страница состоит из трёх языков, и у каждого своя работа. Вы уже знаете два из них:
Язык
Отвечает за
Пример на странице
HTML
Что на странице: структура и содержание
Заголовок, кнопка, список товаров
CSS
Как это выглядит
Цвета, сетка, отступы, адаптив
JavaScript
Что происходит: поведение и логика
Клик по кнопке, подсчёт суммы, проверка формы
Аналогия из жизни
Представьте чойхону. HTML — это здание: стены, столы, кухня. CSS — интерьер: ковры, свет, расстановка столов. А JavaScript — официант и повара: они принимают заказ, несут чай, пересчитывают счёт. Здание без людей красивое, но пустое. Сайт без JavaScript — то же самое.
Что делает браузер, когда вы открываете страницу
1. HTMLБраузер читает файл сверху вниз
→
2. DOMСтроит «дерево» из элементов страницы
→
3. CSSКрасит и раскладывает элементы
→
4. JavaScriptВыполняет код и может менять страницу
Внутри каждого браузера есть «двигатель», который понимает JavaScript: в Chrome и Edge он называется V8, в Firefox — SpiderMonkey, в Safari — JavaScriptCore. Вам не нужно ничего устанавливать, чтобы JavaScript заработал: он уже есть в вашем браузере. Именно поэтому мы начинаем с браузера, а Node.js — программу для запуска JS вне браузера — подключим позже, на уроке 17.
Как JavaScript читает код
Сверху вниз, строка за строкой. Как вы читаете рецепт: сначала первый шаг, потом второй.
Одна команда — одно действие. Команды (их называют «инструкциями») принято заканчивать точкой с запятой ;.
Регистр важен.console и Console для JavaScript — два разных слова.
Если на какой-то строке случилась ошибка, код ниже не выполнится. Браузер остановится и напишет сообщение в консоль.
Самая первая команда, которую вы выучите, — console.log. Она «печатает» значение в консоль. Попробуйте: нажмите «Запустить», потом поменяйте текст и запустите снова.
Первая программа · Ctrl + Enter
console.log("Салом, JavaScript!");
console.log("Я учусь программировать в MakeFirstStep");
Проверьте на практике, что порядок важен. Строки выполняются сверху вниз, и результат в консоли идёт в том же порядке:
А вот что бывает, когда на середине программы — ошибка. Третья команда обращается к несуществующему слову, и четвёртая уже не выполняется:
Этот код выдаст ошибку · Ctrl + Enter
console.log("Шаг 1: всё хорошо");
console.log("Шаг 2: всё хорошо");
console.log(шаг3);
console.log("Шаг 4: сюда мы не дойдём");
Частая ошибка
Думать, что JavaScript «понимает, что вы имели в виду». Нет: он делает ровно то, что написано, буква в букву. Лишний пробел в кавычках, заглавная буква вместо маленькой, забытая скобка — и вместо результата вы получите красное сообщение. Это нормально: ошибки встречаются у всех программистов каждый день, а читать их — отдельный навык, который мы сегодня начнём тренировать.
Две короткие задачи, чтобы привыкнуть к редактору: впишите код, нажмите «Запустить» и сравните результат с ожидаемым.
ЗАДАЧА 1.1
Первое слово JavaScript
лёгкая
Выведите в консоль строку Салом, Душанбе! — ровно так, с восклицательным знаком.
Можно редактировать · Ctrl + Enter
// напишите команду console.log с текстом в кавычках
Ожидаемый результат
Салом, Душанбе!
Подсказка 1
Команда выглядит так: console.log("текст");. Текст в кавычках, всё вместе в круглых скобках.
Подсказка 2
Скопируйте строку из примера выше и замените текст в кавычках на Салом, Душанбе!.
ЗАДАЧА 1.2
Расставьте шаги по порядку
лёгкая
Рецепт плова перепутался: JavaScript выполняет строки по порядку, поэтому в консоли шаги идут не так, как нужно. Переставьте строки местами (не меняя текст), чтобы получилась правильная последовательность.
Можно редактировать · Ctrl + Enter
console.log("3. Подать плов с салатом");
console.log("1. Обжарить мясо и морковь");
console.log("2. Добавить рис и воду");
Ожидаемый результат
1. Обжарить мясо и морковь
2. Добавить рис и воду
3. Подать плов с салатом
Подсказка 1
Порядок вывода всегда совпадает с порядком строк в коде. Значит, менять нужно порядок строк, а не их содержимое.
Подсказка 2
Строку «1. …» нужно поднять на самый верх, а строку «3. …» опустить вниз. В редакторе VS Code это делается сочетанием Alt + ↑/↓, а здесь — просто выделите и вырежьте или перепишите.
02 Подключаем скрипт: inline, внешний файл, defer
Чтобы браузер выполнил JavaScript, код нужно «положить» на страницу с помощью тега <script>. Есть два способа.
Способ 1. Код прямо в HTML (inline)
Только чтение · index.html
<body><h1>Моя страница</h1><script>
console.log("Салом из inline-скрипта!");
</script></body>
Удобно для короткой проверки, но в настоящих проектах так не делают: HTML превращается в кашу, а код нельзя использовать на другой странице.
Способ 2. Отдельный файл (внешний скрипт)
Это основной способ. Код лежит в файле script.js рядом с index.html, а в HTML вы только ссылаетесь на него через атрибут src — точно так же, как <link href="style.css"> подключает CSS.
Inline-скрипт — это записка, приклеенная прямо к стене. Внешний файл — это полка с папками: на стене висит только ярлык «см. папку script.js», а все документы лежат в папке, и их можно открыть из любой комнаты (с любой страницы).
src
Адрес файла со скриптом. script.js — рядом с HTML, js/script.js — в подпапке js, ../script.js — на уровень выше.
Закрывающий тег
Всегда нужен: <script src="..."></script>. Записать как <script src="..." /> нельзя — страница сломается.
defer
Атрибут «подожди». Браузер скачивает файл параллельно с чтением страницы, но запускает его только после того, как весь HTML прочитан.
Где держать тег script
Помните схему из прошлого раздела: браузер читает HTML сверху вниз. Если скрипт стоит выше элемента, к которому обращается, то в момент запуска такого элемента ещё нет. Посмотрите на живом примере. В трёх местах мы просим у страницы заголовок h1 (как это работает, разберём на уроке 8 — пока важно только слово null — «ничего нет»).
До и после заголовка · Ctrl + Enter
<script>
console.log("скрипт ВЫШЕ заголовка:", document.getElementById("title"));
</script><h1id="title">Салом, MakeFirstStep!</h1><script>
console.log("скрипт НИЖЕ заголовка:", document.getElementById("title"));
</script>
// файл script.js в этой песочнице запускается после всей страницы, как с defer
console.log("script.js (как defer):", document.getElementById("title"));
Предпросмотр
Нажмите «Запустить», чтобы увидеть результат.
Первый скрипт увидел null: заголовка на странице ещё не было. Второй и третий — нашли <h1#title>. Отсюда три рабочих правила:
Вариант
Как выглядит
Когда использовать
defer в <head>
<script src="script.js" defer></script>
Наш выбор на курсе. Подключение видно сразу вверху файла, а выполнение — после загрузки страницы.
В конце <body>
<script src="script.js"></script> перед </body>
Старый, но рабочий способ. Часто встречается в чужом коде.
В <head> без defer
<script src="script.js"></script>
Обычно ошибка: скрипт запускается, когда страницы ещё нет, и не находит элементов.
Есть ещё атрибут async: он запускает скрипт сразу, как только скачал, не дожидаясь страницы и других скриптов. Так подключают счётчики аналитики. Для наших программ он не подходит: порядок запуска не гарантирован. А type="module" (уроки 17–18) ведёт себя как defer автоматически.
Частые ошибки при подключении
Скрипт «не работает», в консоли пусто. Проверьте путь в src: skript.js и script.js — разные файлы. На сервере регистр тоже важен: Script.js ≠ script.js.
В консоли красная строка «Failed to load resource: 404». Браузер не нашёл файл: он лежит в другой папке или назван иначе.
Файл называется script.js.txt. На Windows расширения по умолчанию скрыты — включите их (Проводник → Вид → Показать → Расширения имён файлов).
Изменил код, а в браузере всё по-старому. Файл не сохранён (белая точка у вкладки в VS Code) или браузер показывает старую копию: обновите страницу с очисткой кэша — Ctrl + Shift + R (Windows) или Cmd + Shift + R (macOS).
Если у тега есть src, то код внутри него игнорируется. Нужно одно из двух: либо src, либо код внутри.
Три задачи про типичные проблемы начинающих: регистр букв, опечатка и неудачное место скрипта.
ЗАДАЧА 2.1
Найди ошибку: регистр букв
лёгкая
Скрипт ничего не выводит, а в консоли красное сообщение. Найдите опечатки и исправьте их. Обратите внимание: ошибка в первой же строке остановит выполнение.
Прочитайте красное сообщение: оно называет слово, которое JavaScript не знает. Сравните это слово с тем, как пишется команда в примерах выше — буква в букву.
Подсказка 2
В слове console все буквы маленькие. В слове log — тоже. Исправьте обе строки.
ЗАДАЧА 2.2
Скрипт не запускается
лёгкая
В файле script.js этой мини-страницы допущена ошибка в синтаксисе, из-за которой скрипт не запускается вообще. Исправьте её и нажмите «Запустить» — в консоли должна появиться строка подтверждения.
Проверка подключения · Ctrl + Enter
<h1>Мой первый сайт</h1><p>Если скрипт подключён, смотрите консоль.</p>
console.log("Скрипт подключён"
Предпросмотр
Нажмите «Запустить», чтобы увидеть результат.
Ожидаемый результат
Скрипт подключён
Подсказка 1
Красное сообщение подскажет, чего JavaScript не дождался. Посмотрите на конец строки: все ли скобки закрыты?
Подсказка 2
У команды console.log( есть открывающая скобка, а закрывающей нет. Добавьте ) и точку с запятой в конце.
ЗАДАЧА 2.3
Скрипт стоит слишком рано
средняя
Скрипт хочет найти заголовок h1 и вывести его, но стоит выше заголовка и видит только null. Не меняя саму команду, переставьте код так, чтобы в консоли оказалось <h1#title>.
Браузер читает HTML сверху вниз. Заголовок должен оказаться на странице раньше, чем скрипт попросит его найти.
Подсказка 2
Перенесите весь блок <script> … </script> ниже строки с <h1>.
03 Консоль: log, warn, error, table
Консоль — это окно «чата» между вами и браузером. Туда программа пишет сообщения, а вы читаете. Программисты на JavaScript проводят в консоли половину рабочего времени: проверяют значения, ищут ошибки, пробуют команды.
Аналогия из жизни
Консоль — как окошко на кухне чойхоны, через которое повар передаёт сообщения залу. «Заказ готов» (log), «рис заканчивается» (warn), «казан сломан, плов не будет» (error). Посетитель этого окошка не видит — только вы, разработчик.
console.log — печатаем значение
В скобках можно писать текст, числа и даже вычисления. Текст всегда берётся в кавычки: двойные "..." или одинарные '...' — без разницы, главное, чтобы открывающая и закрывающая были одинаковые.
Можно редактировать · Ctrl + Enter
console.log("Это текст"); // строка — в кавычках
console.log('Одинарные тоже можно');
console.log(2026); // число — без кавычек
console.log(7 * 8); // JavaScript сам посчитает: 56
console.log(100 - 35); // 65
Чем отличается "5" от 5? В кавычках — текст (строка), без кавычек — число. Для человека одинаково, а для программы нет. Подробно разберём на следующем уроке, пока достаточно запомнить: кавычки = текст.
Арифметика: что умеет JavaScript
Знак
Что делает
Пример
Результат
+
сложение
12 + 8
20
-
вычитание
100 - 35
65
*
умножение
5 * 6
30
/
деление
10 / 4
2.5
%
остаток от деления
17 % 5
2
**
степень
2 ** 10
1024
Порядок действий такой же, как в школьной математике: сначала умножение и деление, потом сложение и вычитание, а скобки меняют порядок. Дробная часть в JavaScript пишется через точку: 2.5, а не 2,5.
Через запятую в console.log можно передать сколько угодно значений: консоль выведет их в одну строку через пробел. Это очень удобно: подпись слева, значение справа.
В обычном тексте иногда нужны сами кавычки. Если внутри слова есть апостроф или кавычка, возьмите кавычки другого вида: "It's a plov" или 'Он сказал "Салом"'. Для переноса строки внутри текста есть символ \n. Остальное узнаем позже.
warn, error, info, table
У консоли есть разные «голоса». В настоящей консоли браузера они выглядят по-разному: warn — жёлтая строка, error — красная, info — обычная с иконкой, а table рисует таблицу.
Можно редактировать · Ctrl + Enter
console.log("Обычное сообщение");
console.info("Информация: курс начался");
console.warn("Предупреждение: осталось мало риса");
console.error("Ошибка: казан сломан");
console.table(["самбуса", "курутоб", "чой"]);
Как это выглядит у вас в браузере
В окне запуска на этой странице всё выводится простыми строками, чтобы вы могли сравнивать результат с эталоном. В настоящей консоли warn будет жёлтым, а error — красным с кнопкой раскрытия, откуда вызвано сообщение. console.table нарисует настоящую таблицу со столбцами «index» и «Value» — откройте консоль на своей странице и посмотрите. Таблицы особенно полезны, когда выводите много однотипных данных (с массивами и объектами познакомимся на уроках 6 и 7).
Метод
Когда использовать
console.log()
Обычные сообщения, проверка значений. Используете чаще всего.
console.info()
То же, что log, но «по смыслу» — справочная информация.
console.warn()
Что-то подозрительное, но программа может работать дальше.
console.error()
Что-то сломалось. Сам по себе не останавливает программу — просто пишет красным.
console.table()
Много однотипных данных в виде таблицы.
Консоль как калькулятор
В DevTools консоль можно использовать и напрямую: напечатали выражение, нажали Enter — получили результат, без console.log. Стрелка ↑ достаёт предыдущую команду, Shift + Enter переносит строку, не выполняя команду. Удобно проверять мелочи: 2 ** 10, 17 % 5, "a" + "b".
Читаем сообщение об ошибке
Красная строка — не приговор, а подсказка. В ней всегда три части:
Вид ошибки — SyntaxError (нарушены правила записи: не хватает скобки, кавычки), ReferenceError (используете слово, которого JavaScript не знает).
Описание — например, Console is not defined («Console не определено») или missing ) after argument list («после аргументов не хватает )»).
Место — имя файла и номер строки, например script.js:3. В настоящей консоли это ссылка: клик открывает именно эту строку.
Научитесь читать эти три части — и половина ошибок будет решаться за минуту. Окно запуска на этой странице тоже подсказывает: под красной строкой появляется строка с пояснением на русском.
consol.log, console.lg, console.Log — опечатка в слове.
Забытая кавычка или скобка: console.log("Салом).
Разные кавычки в начале и в конце: "Салом'.
Текст без кавычек: console.log(Салом) — JavaScript решит, что Салом — команда.
Русские буквы вместо латинских в слове console (внешне те же с и о, а для программы — другие). Если «всё правильно, а не работает» — перепишите слово заново.
Забытая запятая между значениями или лишняя точка.
Одиннадцать задач: начинаем с простого вывода и заканчиваем «предскажи результат». Везде — только значения, написанные прямо в коде: переменные мы изучим на следующем уроке.
ЗАДАЧА 3.1
Визитка студента
лёгкая
Выведите визитку из трёх строк. Каждая строка — отдельный console.log.
Можно редактировать · Ctrl + Enter
// три строки: имя, город, курс
Ожидаемый результат
Имя: Мадина
Город: Душанбе
Курс: Frontend + AI
Подсказка 1
Три отдельные команды console.log("...");, в каждой — одна строка в кавычках.
Подсказка 2
Первая команда: console.log("Имя: Мадина");. Знак + внутри кавычек — обычный символ текста.
ЗАДАЧА 3.2
Заказ в чайхоне
лёгкая
Вы заказали 3 самбусы по 5 сомони и 2 чайника чая по 3 сомони. Выведите одним console.log общую сумму — пусть посчитает JavaScript.
Можно редактировать · Ctrl + Enter
// 3 самбусы по 5 сомони + 2 чая по 3 сомони
Ожидаемый результат
21
Подсказка 1
В скобки console.log можно написать выражение целиком. Числа пишутся без кавычек.
Подсказка 2
Три самбусы по 5 сомони — это 3 * 5, два чая по 3 — 2 * 3. Сложите произведения. Умножение выполняется раньше сложения, скобки не нужны.
ЗАДАЧА 3.3
Ценники через запятую
лёгкая
Выведите два ценника. В каждой команде передайте три значения через запятую: подпись, число (без кавычек) и слово «сомони».
Можно редактировать · Ctrl + Enter
// Курутоб: 35 сомони// Самбуса: 5 сомони
Ожидаемый результат
Курутоб: 35 сомони
Самбуса: 5 сомони
Подсказка 1
Консоль сама ставит пробел между значениями, поэтому пробелы в кавычках не нужны: "Курутоб:" без пробела в конце.
Подсказка 2
console.log("Курутоб:", 35, "сомони"); — и то же для самбусы.
ЗАДАЧА 3.4
Склеиваем плюсом
средняя
Выведите две строки, склеив их из кусочков знаком +: первая — из трёх частей "Урок ", число 1 и ": старт курса"; вторая — из слов "MakeFirstStep" и "2026" с пробелом между ними (пробел — отдельная строка " ").
Можно редактировать · Ctrl + Enter
// строка 1: "Урок " + 1 + ": старт курса"// строка 2: MakeFirstStep и 2026 через пробел
Ожидаемый результат
Урок 1: старт курса
MakeFirstStep 2026
Подсказка 1
Пробелы нужны там, где вы хотите видеть пробелы в результате. В "Урок " пробел внутри кавычек уже есть.
Подсказка 2
Вторая строка: console.log("MakeFirstStep" + " " + "2026");
ЗАДАЧА 3.5
Лепёшки на гостей
средняя
На 4 гостей принесли 17 лепёшек. Выведите три строки (каждая — результат одного выражения без подписей): сколько лепёшек достанется каждому, если делить поровну (деление), сколько лепёшек останется целиком (остаток от деления), и чему равно 2 в степени 10.
Можно редактировать · Ctrl + Enter
// 17 лепёшек на 4 гостя
Ожидаемый результат
4.25
1
1024
Подсказка 1
В таблице арифметики в начале раздела есть все три знака: /, % и **.
Подсказка 2
Три команды: console.log(17 / 4);, console.log(17 % 4); и console.log(2 ** 10);.
ЗАДАЧА 3.6
Найди ошибки: опечатки в команде
лёгкая
В этом коде четыре строки, и в каждой по опечатке в слове console или log. Исправляйте по одной: запустите, прочитайте сообщение, исправьте, запустите снова.
Первая строка
Вторая строка
Третья строка
Четвёртая строка
Подсказка 1
Текст в кавычках должен начинаться и заканчиваться одинаковой кавычкой, а команда — открываться и закрываться скобкой.
Подсказка 2
Строка 1: не хватает закрывающей ". Строка 2: не хватает ) и ;. Строка 3: начало с ', конец с ". Строка 4: нет круглых скобок вокруг текста.
ЗАДАЧА 3.8
Предупреждение повара
лёгкая
Вместо console.log используйте console.warn и выведите предупреждение: Внимание: в казане осталось мало риса.
Можно редактировать · Ctrl + Enter
// console.warn(...)
Ожидаемый результат
Внимание: в казане осталось мало риса
Подсказка 1
Всё записывается так же, как с console.log, но слово после точки — warn.
Подсказка 2
console.warn("Внимание: в казане осталось мало риса");
ЗАДАЧА 3.9
Чек из чайханы
сложная
Выведите чек из четырёх строк. Строки с блюдами строятся из четырёх значений через запятую: название с «x», количество, знак «=» и сумма, которую считает JavaScript. Последняя строка — итог, тоже вычисленный (а не написанный числом вручную). Цены: самбуса — 5 сомони, чой — 3 сомони.
Можно редактировать · Ctrl + Enter
// Чек// Самбуса x 3 = 15// Чой x 2 = 6// Итого: 21 сомони
Ожидаемый результат
Чек
Самбуса x 3 = 15
Чой x 2 = 6
Итого: 21 сомони
Подсказка 1
Строка блюда: console.log("Самбуса x", 3, "=", 3 * 5);. Сумма — выражение прямо в скобках.
Сначала не запускайте! Прочитайте программу и в уме определите, что она выведет. Потом впишите свои прогнозы в редактор ниже: каждая строка прогноза — отдельный console.log. Нажмите «Запустить»: если прогнозы верны, задача засчитается. Проверить себя можно, запустив саму программу в примере выше или в консоли браузера.
Третья и четвёртая строки — главные «ловушки». Знак + рядом с текстом склеивает, а знак - работает только с числами и превращает текст "10" в число.
Подсказка 2
"10" + 5 даёт 105 (склейка, как «MakeFirstStep» + «2026»). "10" - 5 даёт 5 (вычитание). В последней строке три значения через запятую — вывод через пробел.
ЗАДАЧА 3.11
Предскажи вывод: сложение или склейка
сложная
Те же правила, но хитрее. Определите вывод в уме, впишите прогнозы по одному console.log на строку и проверьте. Почему так происходит, подробно разберём на уроке 2; сегодня достаточно понять закономерность — JavaScript выполняет действия слева направо.
Идите слева направо, по одному действию. Пока оба значения числа — + складывает, как только в паре встречается текст — склеивает.
Подсказка 2
2 + 2 + "2": сначала 2 + 2 = 4, потом 4 + "2" = "42". "2" + 2 + 2: сразу склейка — "22", потом "222". Умножение превращает текст в число, а слово «три» числом стать не может — получается NaN («не число»).
04 DevTools: инструменты разработчика
Консоль — одна из вкладок большой панели DevTools (Developer Tools, «инструменты разработчика»). Она встроена в каждый браузер и бесплатна. Профессиональные фронтендеры открывают её каждый день: смотрят, как устроена страница, ищут ошибки, проверяют скорость и сетевые запросы. Мы сегодня познакомимся с тремя вкладками: Elements, Console, Sources.
Как открыть
Действие
Windows
macOS
Открыть DevTools
F12 или Ctrl + Shift + I
Cmd + Option + I
Сразу в консоль
Ctrl + Shift + J
Cmd + Option + J
Показать элемент в Elements
ПКМ по элементу → «Просмотреть код»
ПКМ по элементу → «Просмотреть код» (или Ctrl + клик)
Режим мобильного экрана
Ctrl + Shift + M
Cmd + Shift + M
Обновить без кэша
Ctrl + Shift + R
Cmd + Shift + R
Панель можно закрепить снизу, справа или вынести в отдельное окно: кнопка с тремя точками ⋮ в правом верхнем углу DevTools → «Dock side». Для работы с кодом удобно закрепить справа или снизу.
Вкладка Elements: живая страница
Вы уже видели её, когда разбирались с CSS. Слева — дерево HTML, справа — стили выбранного элемента. Но теперь у неё появляется новый смысл: это то, что реально лежит на странице в данный момент, а не то, что было в файле. Когда JavaScript меняет страницу, вы увидите изменения именно здесь.
Двойной клик по тексту — меняете его прямо на странице. Двойной клик по атрибуту или значению стиля — тоже.
Галочки рядом со стилями включают и выключают свойства — удобно искать, какое правило ломает вёрстку.
Изменения живут до перезагрузки. Файл на диске не меняется — это «репетиция» на копии страницы.
Вкладка Console: сообщения и команды
Всё, что вы выводите через console.log, и все красные ошибки появляются здесь. Рядом с каждым сообщением справа — имя файла и номер строки: клик по ссылке открывает эту строку во вкладке Sources. Значок 🚫 слева очищает консоль, а выпадающий список «Default levels» фильтрует сообщения: например, можно показать только ошибки.
Вкладка Sources: файлы и точки останова
Слева дерево файлов сайта: index.html, style.css, script.js. Откройте script.js — в середине вы увидите свой код. Поиск файла по имени: Ctrl/Cmd + P.
Главная фишка вкладки — точка останова (breakpoint). Кликните по номеру строки — появится синий маркер. Перезагрузите страницу: браузер дойдёт до этой строки и поставит выполнение на паузу. Теперь можно рассмотреть, что уже произошло, и идти дальше по одной команде.
Кнопка / клавиша
Что делает
▶ Resume · F8
Снять паузу и выполнять код дальше до следующей точки останова
Step over · F10
Выполнить одну строку и остановиться на следующей
Step into · F11
Зайти «внутрь» вызова функции (пригодится на уроке 5)
Аналогия из жизни
Обычный запуск программы — как фильм, который идёт без остановок. Точка останова — кнопка «пауза»: можно остановить кадр и рассмотреть всё, что на нём происходит. Step over — «следующий кадр». Именно так опытные разработчики ищут ошибки: не гадают, а смотрят кадр за кадром.
Другие вкладки (знать, что они есть)
Network — все запросы страницы: файлы, картинки, данные. Здесь мы увидим, как загружаются API на уроках 14–16, а сегодня пригодится, чтобы проверить, что script.js действительно скачался (статус 200, а не 404).
Application — здесь живёт localStorage (урок 11).
Lighthouse — автоматическая оценка скорости и доступности страницы.
Совет
Если вы запутались — нажмите Ctrl/Cmd + Shift + R: обновление страницы без старого кэша решает большинство загадок «я же поменял, а ничего не изменилось».
Первая задача — прочитать сообщение об ошибке, вторая — «экскурсия» по DevTools на вашем компьютере.
ЗАДАЧА 4.1
Читаем сообщение об ошибке
лёгкая
Запустите код и прочитайте сообщение под красной строкой: что именно JavaScript «не знает» и на какой он остановился строке? Исправьте код так, чтобы вывелись все три строки.
Ошибка называется ReferenceError: слово Привет без кавычек JavaScript принимает за имя команды, а такого имени не существует.
Подсказка 2
Текст в console.log нужно взять в кавычки: console.log("Привет");.
ЗАДАЧА 4.2
Экскурсия по DevTools
лёгкая
Эта задача выполняется вне страницы (на странице автопроверки нет), поэтому отметьте её вручную. Откройте любой сайт (например, сайт вашей академии) и сделайте по порядку:
Откройте DevTools и закрепите панель справа, затем снизу.
Во вкладке Elements найдите главный заголовок страницы, двойным кликом измените его текст. Обновите страницу — что стало с изменением?
Во вкладке Console наберите 2 ** 10 и нажмите Enter, затем "Салом, " + "мир". Нажмите стрелку ↑ — что появилось?
Во вкладке Console введите console.log("Я здесь!") и найдите ссылку на строку справа от сообщения.
Во вкладке Network обновите страницу и найдите самый большой по размеру файл.
Подсказка 1
Нет под рукой DevTools? Проверьте сочетания клавиш в таблице выше. На некоторых ноутбуках клавиши F1–F12 работают только вместе с Fn.
Подсказка 2
Изменения в Elements не сохраняются — после обновления страницы всё вернётся на место. Это нормально: вы меняли копию в памяти браузера.
05 Окна: alert, prompt, confirm
Консоль видна только разработчику. Но иногда нужно поговорить с пользователем: показать сообщение, спросить имя, получить «да» или «нет». У браузера для этого есть три встроенных окна. Они «модальные»: пока окно открыто, страница заморожена, и ничего другого нажать нельзя.
Запускать эти примеры придётся у себя
Код на этой странице работает внутри изолированной «песочницы» браузера, и она запрещает модальные окна: alert, prompt и confirm здесь просто игнорируются. Поэтому следующие блоки — только для чтения. Скопируйте их в свой script.js (после настройки среды в разделе 6) и попробуйте на своей странице.
alert — показать сообщение
Только чтение · попробуйте на своей странице
alert("Салом, MakeFirstStep!");
Окно с текстом и одной кнопкой «OK». Ничего не возвращает: просто показывает и ждёт.
prompt — спросить у пользователя
Только чтение · попробуйте на своей странице
prompt("Как вас зовут?"); // окно с полем вводаprompt("В каком вы городе?", "Душанбе"); // второй аргумент — значение по умолчанию
Показывает окно с полем ввода и кнопками «OK» и «Отмена». Что вернёт prompt:
если нажали OK — то, что ввели, всегда как строку (даже если вы набрали число);
если нажали «Отмена» или Esc — специальное значение null («ничего»).
confirm — спросить «да или нет»
Только чтение · попробуйте на своей странице
confirm("Вы точно хотите удалить заказ?");
Окно с вопросом и кнопками «OK» и «Отмена». Возвращает true («да»), если нажали OK, и false («нет»), если «Отмена». Что делать с этим ответом — выбирать, когда мы научимся условиям (урок 3).
Используем ответ сразу, без переменных
Переменных мы пока не знаем (это урок 2), но ответ prompt уже можно использовать — вставив один вызов внутрь другого. Сначала JavaScript выполняет то, что внутри скобок, а потом использует результат.
Если спросить у пользователя два числа и сложить ответы знаком +, получится склейка, а не сумма: "7" + "5" даёт "75". Чтобы превратить строку в число, используйте функцию Number(...). Эту «ловушку» можно проверить даже здесь, без окон — подставим вместо ответов пользователя готовые строки:
Что вернул бы prompt, если ввели 7 и 5 · Ctrl + Enter
console.log("7" + "5"); // склейка строк
console.log(Number("7") + Number("5")); // превратили в числа и сложили
Только чтение · сумма двух чисел на своей странице
Это как анкета в банке: вы пишете цифры от руки, а оператор вводит их в компьютер. Пока цифры только на бумаге (в строке), считать с ними нельзя. Сначала нужно «ввести» (Number(...)), а потом складывать.
Почему в настоящих проектах это почти не используют
Окна блокируют всю страницу, выглядят одинаково на всех сайтах и пугают пользователя.
Их нельзя оформить в стилях сайта: красить, анимировать, перетаскивать.
Браузер позволяет пользователю включить «Не показывать больше диалоги», после чего код тихо перестаёт работать.
Вместо них на сайтах используют формы, модальные окна из HTML и уведомления — этому мы научимся в модулях 2 и 3.
Зато для обучения и быстрой проверки идей alert и prompt идеальны: ничего не нужно верстать.
Две задачи — на строки и числа так, как их возвращает prompt, и одна — на вашей странице.
ЗАДАЧА 5.1
Сумма вместо склейки
лёгкая
Пользователь ввёл в prompt числа «7» и «5» (они пришли строками). Исправьте код, чтобы вместо 75 выводилась сумма.
Можно редактировать · Ctrl + Enter
console.log("7" + "5");
Ожидаемый результат
12
Подсказка 1
Прежде чем складывать, каждую строку нужно превратить в число функцией Number(...).
Подсказка 2
console.log(Number("7") + Number("5"));
ЗАДАЧА 5.2
Скидка в магазине
средняя
Покупатель ввёл цену «200» и скидку «15» (проценты) — оба значения пришли строками. Выведите цену со скидкой: от цены вычтите цена * скидка / 100. Формула в одну строку, числа берите из строк через Number.
Цена встречается в формуле дважды, скидка — один раз. Превращайте в число каждое вхождение строки: Number("200").
Подсказка 2
console.log(Number("200") - Number("200") * Number("15") / 100);. Умножение и деление идут раньше вычитания: 200 * 15 / 100 = 30, итого 170.
ЗАДАЧА 5.3
Диалоги на своей странице
средняя
Задача выполняется на вашем компьютере (здесь модальные окна заблокированы), поэтому отметьте её вручную, когда всё заработает. В вашем script.js напишите:
console.log(confirm("Вы любите плов?")); — нажмите «OK», затем обновите страницу и нажмите «Отмена». Какие значения увидели в консоли?
Нажмите «Отмена» в окне prompt из пункта 2. Что показало приветствие?
Подсказка 1
Если окна не появляются, откройте консоль: возможно, вы опечатались, и там красная строка. Или браузер заблокировал окна — обновите страницу.
Подсказка 2
В пункте 5 приветствие будет «Салом, null!»: prompt вернул null, а склейка превратила его в слово. Как с этим бороться, узнаем на уроке про условия.
06 Настройка среды: VS Code, расширения, Live Server, Copilot
Писать код можно и в блокноте, но профессионалы используют редактор кода: он подсвечивает синтаксис, подсказывает команды и сразу показывает опечатки. На курсе мы работаем в Visual Studio Code (VS Code) — это бесплатный редактор, на котором сегодня пишет большинство фронтендеров мира.
Аналогия из жизни
Блокнот — это кухонный нож: резать можно, но медленно. VS Code с расширениями — кухонный комбайн. Но руки остаются вашими: если не умеете готовить, комбайн приготовит быстро, но невкусно. Поэтому сначала учимся сами, потом ускоряем себя инструментами.
Откройте скачанный архив — появится приложение Visual Studio Code.
Перетащите его в папку «Программы» (Applications), иначе будут проблемы с обновлением.
Запустите из Launchpad. Если macOS спросит «открыть программу, скачанную из интернета?» — нажмите «Открыть».
В VS Code нажмите Cmd + Shift + P, введите shell command и выберите «Install 'code' command in PATH».
Чтобы интерфейс был на русском, откройте Ctrl/Cmd + Shift + X, найдите «Russian Language Pack for Visual Studio Code» и установите. Однако документация и подсказки в основном на английском, поэтому многие оставляют английский интерфейс.
Шаг 2. Рабочая папка
Создайте на диске папку для курса, например mfs-js. На Windows лучше путь без кириллицы и пробелов: C:\dev\mfs-js. На Mac — в домашней папке: ~/dev/mfs-js.
Внутри создайте папку lesson-01.
В VS Code: File → Open Folder… и выберите папку mfs-js. На вопрос «Do you trust the authors?» ответьте «Yes, I trust the authors».
Слева в панели Explorer появится папка. Теперь можно создавать файлы: наведите мышь на название папки, нажмите значок «New File».
Совет
Откройте папку проекта, а не отдельный файл — тогда VS Code видит все файлы, Live Server находит их, а ИИ-помощник понимает, над чем вы работаете. Открывать папку каждый раз можно и командой в терминале: code . (точка — «эта папка»).
Шаг 3. Расширения
Расширения ставятся в левой панели Extensions (иконка из четырёх кубиков) — Ctrl/Cmd + Shift + X. Введите название, выберите расширение от нужного автора, нажмите Install.
Расширение
Зачем
Обязательно?
Live Server (Ritwick Dey)
Запускает страницу в браузере и обновляет её при каждом сохранении файла
Да
Prettier — Code formatter
Автоматически выравнивает код: отступы, кавычки, пробелы
Да
GitHub Copilot
ИИ-помощник в редакторе (подробнее ниже). Чат Copilot установится вместе с ним или отдельным расширением «GitHub Copilot Chat»
Да, по правилам курса
Error Lens
Показывает ошибки прямо на строке с кодом, не нужно наводить мышь
Рекомендуем
Auto Rename Tag
Меняете открывающий HTML-тег — закрывающий меняется сам
Рекомендуем
Path Intellisense
Подсказывает имена файлов в src и href — меньше опечаток в путях
Рекомендуем
Шаг 4. Настройки, которые экономят время
Откройте настройки: Ctrl + , (Windows) или Cmd + , (Mac). В строке поиска найдите и включите:
Files: Auto Save → afterDelay: файл сохраняется сам, и вы никогда не забудете нажать Ctrl/Cmd + S (а вопрос «почему ничего не изменилось» возникает намного реже).
Editor: Format On Save → включить, а в Editor: Default Formatter выбрать Prettier: код выравнивается при каждом сохранении.
Editor: Font Size → 16–18: на проекторе и для глаз удобнее.
Editor: Word Wrap → on: длинные строки переносятся.
Полезные сочетания клавиш
Действие
Windows
macOS
Командная палитра (все команды)
Ctrl + Shift + P
Cmd + Shift + P
Быстро открыть файл по имени
Ctrl + P
Cmd + P
Закомментировать строку
Ctrl + /
Cmd + /
Переместить строку вверх/вниз
Alt + ↑/↓
Option + ↑/↓
Дублировать строку
Shift + Alt + ↓
Shift + Option + ↓
Выделить следующее такое же слово
Ctrl + D
Cmd + D
Терминал внутри VS Code
Ctrl + `
Ctrl + `
Скрыть/показать боковую панель
Ctrl + B
Cmd + B
А ещё в пустом HTML-файле наберите ! и нажмите Tab — VS Code сам напишет весь каркас страницы. Это встроенный помощник Emmet.
Шаг 5. GitHub Copilot
GitHub Copilot — ИИ-помощник прямо в редакторе. Он предлагает продолжение кода и отвечает на вопросы в чате. Что нужно для запуска:
Аккаунт GitHub. Он у вас уже есть — вы работали с Git. Если нет — зарегистрируйтесь на github.com.
Тариф. Для курса достаточно бесплатного тарифа Copilot Free (есть ежемесячные лимиты на подсказки и сообщения чата). Студенты школ и вузов могут оформить GitHub Student Developer Pack и получить расширенный Copilot бесплатно на время обучения. Заявка подаётся на education.github.com/pack: нужен подтверждённый статус студента (учебная почта или документ). Рассматривают её от нескольких дней до пары недель, поэтому подайте заявку сегодня, а пока работайте на бесплатном тарифе. Условия и лимиты периодически меняются — актуальные смотрите на сайте.
Вход из VS Code. Установите расширение GitHub Copilot, нажмите иконку аккаунта внизу слева (или значок Copilot в нижней строке состояния) → Sign in with GitHub → браузер попросит подтвердить вход.
Проверка. В новом файле script.js напишите комментарий // выведи в консоль приветствие и нажмите Enter. Серым текстом появится подсказка: Tab принимает её, Esc отклоняет.
Правило курса про Copilot
Copilot включается на практике и выключается на контрольных работах (уроки 6 и 18). Чтобы отключить автодополнение, нажмите значок Copilot в нижней строке состояния и выберите отключение подсказок (Snooze или Disable Completions). Не нажимайте Tab «на автомате»: сначала прочитайте предложение — понимаете ли вы каждую строку?
Шаг 6. Первый скрипт и Live Server
Теперь всё готово. В папке lesson-01 создайте два файла.
Только чтение · lesson-01/index.html
<!DOCTYPE html><htmllang="ru"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Мой первый скрипт</title><scriptsrc="script.js" defer></script></head><body><h1>Салом, JavaScript!</h1><p>Откройте консоль: F12 или Cmd+Option+I</p></body></html>
Только чтение · lesson-01/script.js
console.log("Салом, JavaScript!");
console.log("Мой первый скрипт работает");
Сохраните оба файла (если включён Auto Save — это произойдёт само).
Нажмите правой кнопкой на index.html в Explorer → Open with Live Server. Или нажмите кнопку Go Live в правом нижнем углу VS Code.
В браузере откроется адрес вида http://127.0.0.1:5500/lesson-01/index.html.
Откройте DevTools (F12 или Cmd + Option + I) → вкладка Console. Там должны быть две ваши строки, справа — script.js:1 и script.js:2.
Измените текст в script.js, сохраните — страница обновится сама. Это и есть Live Server.
Чтобы остановить сервер, нажмите на кнопку Port: 5500 в нижней строке.
Если в консоли пусто или красная ошибка — вернитесь к списку «Частые ошибки при подключении» в разделе 2. В 9 из 10 случаев причина в нём.
Git: первый коммит (по желанию)
Вы уже знакомы с Git — не откладывайте привычку: каждый урок будет в отдельной папке одного репозитория.
Эта задача выполняется на вашем компьютере (проверить установку из браузера нельзя), поэтому отметьте её вручную, когда всё готово. Пройдите чек-лист и каждый пункт проверьте глазами:
☐ VS Code установлен и открывает папку mfs-js (в Explorer слева видна папка lesson-01).
☐ Установлены Live Server, Prettier, GitHub Copilot (внизу справа виден значок Copilot).
☐ Auto Save и Format On Save включены.
☐ Вход в GitHub из VS Code выполнен, подсказка Copilot появляется после комментария и принимается клавишей Tab.
☐ Live Server открывает index.html, а в Console видны две строки из script.js.
☐ Заявка на GitHub Student Pack подана (или вы знаете, почему не подходите, и работаете на Copilot Free).
Подсказка 1
Что-то не получается? Выделите проблему: не открывается Live Server, нет значка Copilot, пустая консоль — и найдите соответствующий шаг выше. В чате группы приложите скриншот и текст ошибки.
Подсказка 2
Пустая консоль чаще всего означает неверный путь в src или несохранённый файл. Откройте вкладку Network в DevTools и проверьте: есть ли там script.js со статусом 200?
07 ИИ-блок: карта инструментов и правила курса
ИИ-подсказка
ИИ — самый быстрый способ получить похожий на правду ответ. Не обязательно правильный. Поэтому весь курс построен на одной привычке: ИИ предлагает — вы запускаете, читаете и объясняете. Сегодня разберёмся, какие бывают ИИ-инструменты, и договоримся о правилах.
Три типа ИИ-инструментов
Чат
Автодополнение
Агент
Примеры
ChatGPT, Claude, Gemini
GitHub Copilot (подсказки при наборе, inline chat)
Cursor, Claude Code, Copilot в режиме агента
Как работает
Вы пишете вопрос в окне — получаете ответ
Вы печатаете в редакторе — ИИ серым текстом предлагает продолжение, Tab принимает
Вы ставите цель — он сам читает проект, правит несколько файлов, запускает команды и проверяет результат
Что умеет
Объяснять, придумывать задачи, разбирать ошибки, предлагать план, проверять идеи
Быстро дописывать типовой код, подставлять имена, повторять ваш стиль
Большие задачи «под ключ»: создать проект, поправить много файлов, написать и прогнать тесты
Видит
Только то, что вы вставили в окно
Открытые файлы и код рядом с курсором
Весь проект и результат запуска команд
Где ошибается
Выдумывает несуществующие методы и «факты», уверенно утверждает неверный вывод кода, не видит ваш проект
Подсказывает правдоподобную строку, которую вы нажимаете Tab «на автомате»; повторяет вашу же опечатку; не объясняет
Делает больше, чем просили; переписывает рабочий код; принимает неверные допущения; результат трудно проверить, пока вы не умеете читать код
Когда нам
С первого урока — основной инструмент
С первого урока на практике, выключаем на контрольных
Только демо преподавателя: Cursor (урок 16) и Claude Code (урок 17)
Аналогия из жизни
Чат — как консультант в магазине: расскажет и посоветует, но не покупает за вас. Автодополнение — как подсказки такси-навигатора: быстро, но если слепо следовать им, можно заехать в тупик. Агент — как водитель, которому вы дали адрес: довезёт, но если вы сами дорогу не знаете, не заметите, что он поехал странным маршрутом.
Где ИИ ошибается в JavaScript чаще всего
Выдумывает команды. Предлагает метод или функцию, которых нет в JavaScript (например, console.print), — звучит убедительно, а в консоли красная ошибка.
Путает языки. Подсовывает конструкции из Python или другого языка, потому что «похоже».
Неверно предсказывает вывод. Уверенно пишет «этот код выведет 4», а он выводит 22. ИИ не запускает ваш код — он угадывает.
Решает не ту задачу. Вы просили одно, а он решил похожее, да ещё добавил лишнее.
Использует устаревшие приёмы или слишком сложные решения, которые вы не сможете объяснить.
Проверьте сами: ИИ-ассистент мог бы сказать «"2" + 2 даст 4». Запустите и убедитесь, кто прав — консоль или ИИ:
Консоль знает лучше · Ctrl + Enter
console.log("2" + 2); // ИИ мог бы уверенно ответить: 4
console.log(2 + 2); // а это уже правда 4
Вывод: консоль — последняя инстанция. Любой ответ ИИ про код проверяется запуском.
Правила работы с ИИ на курсе
Сначала пробуешь сам 15 минут — только потом спрашиваешь ИИ.
Не вставляешь код, который не можешь объяснить строчку за строчкой.
На проверке ДЗ преподаватель может попросить объяснить любую строку.
Промпт всегда содержит: контекст, задачу, ограничения и нужный формат ответа.
ИИ пишет черновик — ты проверяешь логику, имена и крайние случаи.
Copilot включаем на практике и выключаем на контрольных заданиях.
Контрольные на уроках 6 и 18 выполняются полностью без ИИ.
Формула промпта
Элемент
Что писать
1. Контекст
Проект, язык, ваш уровень: «Я учусь JavaScript, это урок 1, пишу в VS Code»
2. Задача
Одно конкретное действие: «Объясни, почему в консоли ошибка»
3. Ограничения
Что нельзя и что обязательно: «Не переписывай весь код, только покажи строку с ошибкой»
4. Формат ответа
Как оформить: «Сначала причина одним предложением, потом исправленная строка»
5. Проверка
Что попросить дополнительно: «Назови ещё две частые причины такой ошибки»
не работает код, почини
Контекст: я новичок, учусь JavaScript (урок 1), пишу в VS Code и запускаю страницу через Live Server. Код лежит в script.js.
Задача: объясни, почему в консоли браузера красная ошибка, и как её исправить.
Код: console.log("Салом, мир);
Ошибка из консоли: Uncaught SyntaxError: Invalid or unexpected token (script.js:1)
Ограничения: не переписывай весь код и не добавляй ничего нового, только объясни и покажи исправленную строку.
Формат ответа: 1) причина одним предложением, 2) исправленная строка, 3) как в следующий раз найти такую ошибку самому.
Проверка: назови две другие частые причины, из-за которых скрипт «ничего не делает».
Из библиотеки промптов курса для первых уроков пригодится шаблон «Не понимаю, почему код ведёт себя странно»: «Вот код: [код]. Объясни построчно, что происходит и почему результат такой. Не переписывай код — только объясни.». Всегда проверяйте: совпадает ли объяснение с тем, что реально выводит консоль.
Чего не делаем на курсе
Не просим «сделай ДЗ за меня» и не сдаём код, который не можем объяснить.
Не вставляем в чат пароли, ключи и личные данные.
Не принимаем Tab от Copilot, не прочитав подсказку.
Не доверяем ИИ в вопросе «что выведет этот код» — запускаем и смотрим.
Практика: закрепляем
Учимся находить ошибки в «ответах ИИ» и составлять собственные промпты.
ЗАДАЧА 7.1
Ответ ИИ с багом
средняя
Вы попросили ИИ: «Выведи первые три строки таблицы умножения на 3». Он уверенно ответил кодом ниже. Запустите его, сравните с ожидаемым результатом и найдите ошибку.
Ответ ИИ · Ctrl + Enter
console.log("3 x 1 =", 3 * 1);
console.log("3 x 2 =", 3 + 2);
console.log("3 x 3 =", 3 * 3);
Ожидаемый результат
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
Подсказка 1
Сверьте результат каждой строки с таблицей умножения. Где результат не совпал?
Подсказка 2
Во второй строке стоит знак сложения вместо умножения: 3 + 2 даёт 5. Должно быть 3 * 2.
ЗАДАЧА 7.2
Промпт по формуле
средняя
Эта задача требует ИИ-чата, поэтому здесь нет автопроверки — отметьте её вручную. Возьмите любую ошибку из задач 3.6–3.7 (в исходном, сломанном виде). Составьте промпт по формуле из пяти частей (контекст → задача → ограничения → формат → проверка) и отправьте в ChatGPT, Claude или Gemini.
Сначала потратьте 15 минут и попробуйте исправить сами (правило №1).
Сохраните промпт в файл prompts.md в папке lesson-01.
Сравните ответ ИИ с тем, что вы поняли сами. Ответ верен? Запустите исправленный код.
Допишите в файл две строки: что ИИ объяснил хорошо, где ошибся или не помог.
Подсказка 1
Используйте хороший промпт из примера выше как шаблон: замените код и текст ошибки на свои.
Подсказка 2
Не получилось одним промптом? Уточните ограничения («не переписывай весь код») и формат («объясни как новичку, без терминов») — и спросите ещё раз.
ЗАДАЧА 7.3
Ревью ответа ИИ: четыре ошибки
сложная
Вы попросили ИИ: «Выведи счёт за 3 чая по 4 сомони и 2 самбусы по 5 сомони, и итог». ИИ ответил «Готово, всё проверено» и выдал код ниже. В нём четыре ошибки разного рода: опечатка, неверный знак, пропущенный разделитель и число, посчитанное вручную неправильно. Исправьте код так, чтобы он выводил верный счёт.
Исправляйте по одной ошибке: запустили, прочитали красное сообщение, исправили. Сначала остановит синтаксическая ошибка (потерялась запятая), затем — опечатка в слове console.
Подсказка 2
Самбуса: 2 штуки по 5 сомони — это 2 * 5. Итог — 3 * 4 + 2 * 5 (12 + 10 = 22). Между подписью "Итого:" и числом нужна запятая.
08 Практика на уроке: окружение и первый скрипт
Это сердце урока: вы своими руками собираете рабочее место и запускаете первую программу. Идите по шагам, не перескакивая. Если что-то не получается — поднимите руку или напишите в чат группы: вместе исправим.
Время
Что делаем
0–20 мин
Установка VS Code, расширений, вход в GitHub
20–40 мин
Папка проекта, index.html, script.js, Live Server
40–55 мин
Консоль и DevTools: log, warn, error, table, ошибки
55–70 мин
Copilot и чат: пробуем, проверяем, обсуждаем
70–90 мин
Задачи 8.1–8.3 и обсуждение домашнего задания
Шаг за шагом
Установите VS Code и расширения из раздела 6. Проверьте: Live Server и Prettier видны в списке установленных.
Создайте папкуmfs-js/lesson-01 и откройте mfs-js в VS Code.
Создайте index.html: в пустом файле наберите ! и нажмите Tab. Исправьте lang на ru, title на «Мой первый скрипт».
Создайте script.js и подключите его в <head>: <script src="script.js" defer></script>.
Напишите в script.js код из примера ниже.
Запустите Live Server и откройте консоль браузера. Найдите все шесть сообщений, сравните цвета.
Поставьте точку останова на строке console.warn во вкладке Sources, обновите страницу, пройдите дальше клавишей F10.
Специально сломайте код: удалите закрывающую кавычку в одной строке. Найдите красную ошибку в консоли и подсветку в VS Code (если установлен Error Lens). Верните как было.
Проверьте Copilot: на новой строке напишите комментарий // выведи в консоль название любимого блюда и посмотрите подсказку. Прочитайте её, прежде чем принять. Понятна ли каждая часть?
Сделайте первый коммит (по желанию), чтобы закрепить привычку.
Только чтение · lesson-01/script.js
console.log("Имя: Мадина");
console.log("Город: Душанбе");
console.log("Курс: Frontend + AI");
console.warn("Предупреждение: это учебный проект");
console.error("Ошибка: просто проба красного цвета");
console.table(["HTML", "CSS", "JavaScript"]);
Мини-страница для экспериментов
Пока не настроили среду на своём компьютере, или чтобы быстро проверить идею, — используйте эту мини-страницу: слева код index.html и script.js, снизу превью и консоль. Это тот же принцип, что и в VS Code с Live Server.
Первая страница · Ctrl + Enter
<h1>Салом, JavaScript!</h1><p>Откройте консоль: там уже есть сообщения.</p>
Три задачи на всё, что вы узнали сегодня: скрипт на странице, вывод разных значений и вычисления.
ЗАДАЧА 8.1
Скрипт для моей страницы
лёгкая
В мини-странице ниже в script.js только комментарий. Допишите два console.log: Привет из script.js и Урок 1 пройден.
Мой скрипт · Ctrl + Enter
<h1>Мой первый сайт</h1><p>Результат смотрите в консоли.</p>
// напишите два console.log
Предпросмотр
Нажмите «Запустить», чтобы увидеть результат.
Ожидаемый результат
Привет из script.js
Урок 1 пройден
Подсказка 1
Перейдите на вкладку script.js, удалите комментарий или просто добавьте строки под ним.
Подсказка 2
Две команды: console.log("Привет из script.js"); и console.log("Урок 1 пройден");.
ЗАДАЧА 8.2
Анкета студента
средняя
Выведите анкету из четырёх строк. Год рождения — 2005, а возраст пусть посчитает JavaScript: 2026 - 2005. В строке возраста используйте два значения через запятую.
Можно редактировать · Ctrl + Enter
// Имя: Мадина// Год рождения: 2005// Возраст: 21// Курс: Frontend + AI
Ожидаемый результат
Имя: Мадина
Год рождения: 2005
Возраст: 21
Курс: Frontend + AI
Подсказка 1
Четыре команды console.log. В двух из них вы выводите подпись и значение через запятую.
Подсказка 2
console.log("Возраст:", 2026 - 2005); — JavaScript сам вычтет и выведет 21.
ЗАДАЧА 8.3
Плов на всех
сложная
На праздник придут 15 гостей. На одного гостя нужно 100 граммов риса, а в мешке 2 килограмма (1 кг = 1000 г). Выведите четыре строки; все числа, кроме исходных (15, 100, 2, 1000), должен посчитать JavaScript:
Гостей: 15
сколько граммов риса нужно (подпись Риса нужно, г:);
то же в килограммах (подпись Риса нужно, кг:);
сколько килограммов останется в мешке (подпись Останется из мешка 2 кг:).
Закончите настройку среды, пришлите подтверждение и решите пять небольших задач на console.log, alert и prompt. Всё делайте в папке lesson-01 на своём компьютере, а для задач — отдельный файл tasks.js, подключённый к index.html после script.js. Переменные не нужны: используйте только значения, записанные прямо в коде.
Часть 1. Рабочее окружение (скриншоты)
☐ VS Code установлен, открыта папка mfs-js, видны lesson-01/index.html и script.js.
☐ Установлены Live Server, Prettier и GitHub Copilot, включены Auto Save и Format On Save.
☐ Вход в GitHub из VS Code выполнен, Copilot показывает подсказки.
☐ Live Server открывает страницу, во вкладке Console видны ваши сообщения.
☐ Заявка на GitHub Student Pack отправлена (скриншот письма или страницы статуса) — или вы объяснили, почему не подходите.
Один скриншот должен показывать всё сразу: окно VS Code с открытым script.js и боковой панелью, рядом — браузер со страницей и открытой консолью с вашими сообщениями. Лучше два скриншота: отдельно VS Code (со значком Copilot) и отдельно браузер.
Часть 2. Пять задач
Визитка (console.log). Выведите пять строк: имя, город, год рождения, курс, любимое блюдо. В строке возраста посчитайте возраст выражением: 2026 - ваш_год_рождения (число подставьте сами).
Счёт в магазине (console.log с несколькими значениями). Три товара с ценой и количеством. В каждой строке: название, количество, знак = и сумма, посчитанная выражением. В конце — итог, тоже вычисленный. Одна строка — один console.log с несколькими значениями через запятую.
Приветствие (alert). Покажите alert с приветствием группы, затем второй alert с текстом из двух строк (перенос строки — символ \n внутри текста).
Знакомство (prompt + alert). Спросите имя и город двумя prompt и покажите одним alert: Салом, Имя из Город!. Подсказка: два prompt можно вставить в одну склейку строк.
Площадь (prompt + Number + confirm). Спросите длину и ширину прямоугольника двумя prompt, превратите ответы в числа через Number и покажите площадь через alert. Затем спросите confirm("Показать периметр?") и выведите ответ (true или false) через console.log. Периметр показывать не нужно, условия мы ещё не учили.
Бонус (по желанию, без баллов): выведите любую строку тремя способами — console.log, console.warn, console.error — и сделайте скриншот того, как они выглядят в настоящей консоли. А ещё попробуйте вывести console.table(["самбуса", "курутоб", "чой"]).
Что сдать
Скриншот(ы) рабочего окружения (часть 1).
Ссылка на репозиторий GitHub (папка lesson-01 с index.html, script.js, tasks.js) или архив папки в Telegram-группу.
Если вы использовали ИИ: в файле README.md три строки — что просили, что взяли, что исправили руками. На проверке преподаватель может попросить объяснить любую строку.
Как оцениваем (0–10)
Критерий
Баллы
Окружение: VS Code, расширения, Live Server, скриншоты видно и они настоящие
2
Copilot подключён и работает (или есть заявка на Student Pack и объяснение)
1
Задача 1: визитка, возраст посчитан выражением
1
Задача 2: счёт, суммы и итог считает JavaScript
1
Задача 3: два alert, перенос строки работает
1
Задача 4: два prompt в одном alert, текст сложен правильно
1
Задача 5: площадь считается как число (а не склейка строк), confirm выведен в консоль
1
Аккуратность: отступы (Prettier), понятные комментарии, никаких лишних строк
1
Объяснили любую строку кода на проверке, если просили (и честно описали использование ИИ)
1
Подсказка по времени
Закладывайте 1,5–2 часа. Установка занимает больше всего времени, особенно если интернет медленный, — начните с неё. Остальное делайте по одной задаче: написали → сохранили → проверили в браузере → перешли к следующей. Пока отлаживаете одну задачу, закомментируйте остальные (Ctrl/Cmd + /), чтобы окна prompt не появлялись по десять раз. Если застряли: 15 минут сами, потом вопрос в чат группы (с кодом и текстом ошибки), потом ИИ по формуле промпта.
✓ Шпаргалка урока
Роли: HTML — что на странице, CSS — как выглядит, JavaScript — что происходит. JS уже встроен в браузер (движок V8 в Chrome и Edge).
Как читается код: сверху вниз, строка за строкой. Регистр важен. Ошибка на строке — остальное не выполняется.
Подключение:<script src="script.js" defer></script> в <head> — наш стандарт. Закрывающий тег обязателен. Без defer скрипт в <head> запускается раньше страницы. Inline — только для проверок. Если есть src, код внутри тега игнорируется.
Пустая консоль? Проверьте путь в src, регистр букв, расширение файла (.js, а не .js.txt), сохранён ли файл, вкладку Network (200 или 404), обновление без кэша: Ctrl/Cmd + Shift + R.
Консоль:console.log(...) — несколько значений через запятую выводятся через пробел; warn — предупреждение, error — ошибка, table — таблица. Текст в кавычках, числа без. Арифметика: + - * / % **, скобки, дробная часть — через точку.
Ошибки: вид (SyntaxError, ReferenceError) + описание + файл и строка. Читайте красное сообщение, а не гадайте. Типичные причины: опечатка в console/log, регистр, забытая кавычка или скобка, текст без кавычек.
Строки и числа:"7" + "5" — это "75", а Number("7") + Number("5") — это 12. + рядом с текстом склеивает, - и * работают с числами.
DevTools:F12 / Cmd + Option + I. Elements — живая страница (правки до перезагрузки), Console — сообщения и команды, Sources — файлы и точки останова (F8, F10), Network — загрузка файлов и запросов.
Окна:alert(текст) — сообщение; prompt(вопрос) — строка или null; confirm(вопрос) — true/false. Блокируют страницу, в реальных проектах их заменяют формами. На странице курса заблокированы — пробуйте у себя.
Среда: VS Code + Live Server + Prettier + Copilot. Включить Auto Save и Format On Save. Открывать папку проекта, а не один файл. Каркас страницы: ! + Tab.
ИИ: чат (объясняет, советует, видит только вставленное), автодополнение Copilot (быстро, но можно нажать Tab не читая), агент (делает много сам — только демо у преподавателя). Правила: 15 минут сам; не вставлять непонятный код; уметь объяснить любую строку; промпт = контекст → задача → ограничения → формат → проверка; Copilot выключаем на контрольных (уроки 6 и 18). Консоль — последняя инстанция: любой ответ ИИ запускаем и проверяем.