Самоучитель по JavaScript
Этот самоучитель проведёт тебя с нуля до понимания основ. Читай по порядку, каждый пример печатай руками в консоли браузера (F12 → Console).
Урок 1: Первая программа и консоль
Что нужно знать: Компьютер выполняет команды строка за строкой.
Твоя первая программа:
alert("Привет, мир!");
Как запустить:
- Открой браузер (Chrome, Firefox, Edge)
- Нажми клавишу F12
- Выбери вкладку Console
- Напиши
alert(«Привет»)и нажми Enter
Что ты увидишь: Всплывающее окошко с текстом.
Важно: Кавычки могут быть «двойные» или 'одинарные' ' — разницы нет, главное не смешивать.
Тренировка:
alert("Моя первая программа"); alert('Ура, получилось!');
Урок 2: Переменные — коробки с данными
Что это: Переменная — это как коробка с именем, где лежит значение.
Создать переменную (положить значение):
let имя = "Вася"; let возраст = 25; let учится = true;
Забрать значение из переменной:
console.log(имя); // покажет "Вася" в консоли console.log(возраст); // покажет 25
Имена переменных:
- Можно:
userName,user_name,user1,_private - Нельзя:
1user(начинать с цифры),my-name(дефис),let(запрещённые слова)
Переменную можно менять:
let x = 5; x = 10; // теперь x равен 10 x = x + 3; // теперь x равен 13 console.log(x);
Тренировка:
let myName = "твоё_имя"; let myAge = 20; console.log("Меня зовут " + myName + ", мне " + myAge + " лет");
Урок 3: Типы данных и математика
Типы значений:
| Тип | Пример | Что это |
|---|---|---|
| строка | «Привет» | Текст (всегда в кавычках) |
| число | 42, 3.14, -5 | Цифры без кавычек |
| логический | true, false | Да или нет |
| null | null | Пусто (специальное значение) |
| undefined | undefined | Не определено (нет значения) |
Математика:
let a = 10; let b = 3; console.log(a + b); // 13 (сложение) console.log(a - b); // 7 (вычитание) console.log(a * b); // 30 (умножение) console.log(a / b); // 3.333... (деление) console.log(a % b); // 1 (остаток от деления)
Склеивание текста (конкатенация):
let привет = "Привет"; let имя = "Аня"; console.log(привет + ", " + имя + "!"); // "Привет, Аня!"
Важно: 5 + 5 = 10 (число), но «5» + 5 = «55» (текст)!
Тренировка:
let ширина = 10; let высота = 5; let площадь = ширина * высота; console.log("Площадь прямоугольника: " + площадь);
Урок 4: Взаимодействие с пользователем
alert() — показать сообщение:
alert("Добро пожаловать!");
prompt() — спросить текст:
let имя = prompt("Как тебя зовут?"); alert("Привет, " + имя + "!");
confirm() — спросить да/нет:
let согласие = confirm("Ты готов учиться дальше?"); console.log(согласие); // true если нажал ОК, false если Отмена
Важно: prompt() всегда возвращает текст (строку). Если нужно число:
let возрастСтрока = prompt("Сколько лет?"); let возрастЧисло = Number(возрастСтрока); console.log(возрастЧисло + 5); // сложение чисел
Тренировка:
let имя = prompt("Как тебя зовут?"); let город = prompt("Откуда ты?"); alert("Привет, " + имя + " из города " + город + "!");
Урок 5: Условия (if / else) — выбор пути
Зачем: Выполнять разные действия в зависимости от условия.
Простое условие:
let возраст = 18; if (возраст >= 18) { alert("Ты взрослый"); }
Условие с else (иначе):
let температура = 25; if (температура > 20) { alert("Надень футболку"); } else { alert("Надень куртку"); }
Много вариантов (else if):
let оценка = 85; if (оценка >= 90) { alert("Отлично!"); } else if (оценка >= 70) { alert("Хорошо"); } else if (оценка >= 50) { alert("Удовлетворительно"); } else { alert("Нужно учить больше"); }
Таблица сравнений (внутри if):
| Символ | Значение | Пример (true) |
|---|---|---|
> | больше | 5 > 3 |
< | меньше | 2 < 4 |
>= | больше или равно | 5 >= 5 |
⇐ | меньше или равно | 3 ⇐ 4 |
== | равно (по значению) | 5 == «5» |
=== | строго равно | 5 === 5 |
!= | не равно | 3 != 5 |
Сложные условия (И / ИЛИ):
let возраст = 20; let имеетПрава = true; // И (&&) — оба условия должны быть true if (возраст >= 18 && имеетПрава === true) { alert("Можешь водить машину"); } // ИЛИ (||) — хотя бы одно условие true let день = "суббота"; let время = 10; if (день === "суббота" || день === "воскресенье") { alert("Выходной!"); }
Тренировка — угадай число:
let секрет = 7; let ответ = Number(prompt("Угадай число от 1 до 10")); if (ответ === секрет) { alert("Поздравляю! Ты угадал!"); } else if (ответ > секрет) { alert("Много, попробуй меньше"); } else if (ответ < секрет) { alert("Мало, попробуй больше"); } else { alert("Введи нормальное число!"); }
Урок 6: Циклы — повторяем действия
for — когда знаешь сколько раз:
// вывести числа от 1 до 5 for (let счетчик = 1; счетчик <= 5; счетчик++) { console.log("Число: " + счетчик); }
Как читать for:
let счетчик = 1— начальное значениесчетчик ⇐ 5— условие (пока верно — крутим)счетчик++— увеличиваем на 1 после каждого шага
while — пока условие верно:
let счетчик = 1; while (счетчик <= 5) { console.log("Шаг номер " + счетчик); счетчик++; // не забудь увеличивать, иначе бесконечный цикл! }
Практический пример — сумма чисел:
let сумма = 0; for (let i = 1; i <= 10; i++) { сумма = сумма + i; } console.log("Сумма чисел от 1 до 10 = " + сумма); // 55
Таблица умножения:
let число = 5; for (let i = 1; i <= 10; i++) { console.log(число + " x " + i + " = " + (число * i)); }
Тренировка — считаем до 10:
for (let i = 10; i >= 1; i--) { console.log(i); } console.log("Поехали!");
Урок 7: Массивы — списки значений
Что такое массив: Упорядоченный список, где у каждого элемента есть номер (индекс), начиная с 0.
Создать массив:
let фрукты = ["яблоко", "банан", "апельсин", "киви"]; let числа = [10, 20, 30]; let пустой = [];
Доступ к элементам (индексы с 0!):
console.log(фрукты[0]); // "яблоко" console.log(фрукты[2]); // "апельсин" console.log(фрукты[5]); // undefined (нет такого)
Изменить элемент:
фрукты[1] = "груша"; console.log(фрукты); // ["яблоко", "груша", "апельсин", "киви"]
Полезные методы массивов:
| Метод | Что делает | Пример |
|---|---|---|
push() | добавить в конец | фрукты.push(«виноград») |
pop() | удалить последний | фрукты.pop() |
length | длина массива | фрукты.length |
indexOf() | найти индекс элемента | фрукты.indexOf(«банан») |
Перебор массива циклом:
let имена = ["Аня", "Вася", "Дима", "Маша"]; for (let i = 0; i < имена.length; i++) { console.log("Привет, " + имена[i]); }
Тренировка — список дел:
let дела = ["купить хлеб", "позвонить маме", "сделать уроки"]; console.log("У тебя " + дела.length + " дела:"); for (let i = 0; i < дела.length; i++) { console.log((i+1) + ". " + дела[i]); }
Урок 8: Функции — создаём свои команды
Зачем: Написать код один раз и использовать много раз.
Создание и вызов функции:
// создаём функцию function сказатьПривет() { console.log("Привет!"); console.log("Как дела?"); } // вызываем функцию сказатьПривет(); сказатьПривет(); // можно много раз
Функция с параметрами (входными данными):
function приветствие(имя) { console.log("Привет, " + имя + "!"); } приветствие("Аня"); // Привет, Аня! приветствие("Вася"); // Привет, Вася!
Функция с возвратом результата (return):
function сумма(a, b) { return a + b; } let результат = сумма(5, 3); console.log(результат); // 8 let еще = сумма(10, 20); console.log(еще); // 30
Функция может быть сложнее:
function калькулятор(число1, число2, действие) { if (действие === "+") { return число1 + число2; } else if (действие === "-") { return число1 - число2; } else if (действие === "*") { return число1 * число2; } else if (действие === "/") { return число1 / число2; } else { return "Неизвестное действие"; } } console.log(калькулятор(10, 5, "+")); // 15 console.log(калькулятор(10, 5, "*")); // 50
Тренировка — приветствие:
function показатьПриветствие(имя, возраст) { let сообщение = "Привет, " + имя + "! Тебе " + возраст + " лет."; return сообщение; } let текст = показатьПриветствие("Дима", 25); alert(текст);
Урок 9: Объекты — группируем данные
Что такое объект: Набор свойств (имя: значение), объединённых в одну сущность.
Создание объекта:
let человек = { имя: "Петя", возраст: 30, город: "Москва", работает: true };
Доступ к свойствам:
console.log(человек.имя); // "Петя" console.log(человек["возраст"]); // 30 console.log(человек.город); // "Москва"
Изменение и добавление свойств:
человек.возраст = 31; // изменили человек.хобби = "футбол"; // добавили новое свойство console.log(человек);
Объект с методами (функциями внутри):
let кошка = { имя: "Мурка", возраст: 3, мяукнуть: function() { alert("Мяу! Меня зовут " + this.имя); }, постареть: function(лет) { this.возраст = this.возраст + лет; } }; кошка.мяукнуть(); // Мяу! Меня зовут Мурка кошка.постареть(2); console.log(кошка.возраст); // 5
Массив объектов (очень полезно):
let студенты = [ { имя: "Аня", оценка: 85 }, { имя: "Вася", оценка: 92 }, { имя: "Дима", оценка: 78 } ]; for (let i = 0; i < студенты.length; i++) { console.log(студенты[i].имя + " — " + студенты[i].оценка + " баллов"); }
Тренировка — телефонная книга:
let контакты = [ { имя: "Мама", телефон: "89123456789" }, { имя: "Папа", телефон: "89876543210" } ]; function найтиТелефон(имя) { for (let i = 0; i < контакты.length; i++) { if (контакты[i].имя === имя) { return контакты[i].телефон; } } return "Контакт не найден"; } console.log(найтиТелефон("Мама")); // 89123456789 console.log(найтиТелефон("Друг")); // Контакт не найден
Урок 10: Работа с веб-страницей (DOM)
DOM — это представление страницы в виде дерева. JavaScript может его изменять.
Найти элемент на странице:
// по id (самый простой способ) let заголовок = document.getElementById("myTitle"); // по CSS селектору (первый подходящий) let кнопка = document.querySelector(".btn"); // все элементы по селектору let всеПараграфы = document.querySelectorAll("p");
Изменить содержимое:
// меняем текст внутри заголовок.innerHTML = "Новый заголовок"; // меняем текст (безопаснее) заголовок.textContent = "Ещё один текст";
Изменить стиль:
заголовок.style.color = "red"; заголовок.style.fontSize = "24px"; заголовок.style.backgroundColor = "yellow";
Создать новый элемент:
let новыйПараграф = document.createElement("p"); новыйПараграф.innerHTML = "Этот абзац создан через JS!"; document.body.appendChild(новыйПараграф);
Полный пример — HTML + JS:
<!DOCTYPE html> <html> <head> <title>Моя страница</title> </head> <body> <h1 id="заголовок">Привет, мир!</h1> <button id="мояКнопка">Нажми меня</button> <div id="результат"></div> <script> let кнопка = document.getElementById("мояКнопка"); let заголовок = document.getElementById("заголовок"); let результат = document.getElementById("результат"); кнопка.onclick = function() { заголовок.style.color = "blue"; заголовок.innerHTML = "Ты нажал на кнопку!"; результат.innerHTML = "<strong>Кнопка сработала!</strong>"; }; </script> </body> </html>
Урок 11: Обработка ошибок
Консоль — твой лучший друг: При ошибке в консоли (F12) будет красное сообщение. Читай его!
Типичные ошибки и их исправление:
| Ошибка | Причина | Исправление |
|---|---|---|
Uncaught ReferenceError: x is not defined | Переменная не объявлена | Добавь let x = значение; |
Uncaught TypeError: … is not a function | Вызываешь как функцию то, что ей не является | Проверь тип переменной |
Unexpected token | Синтаксическая ошибка (пропущена скобка/кавычка) | Проверь закрытие скобок и кавычек |
Проверка на ошибки (try/catch):
try { let результат = 10 / 0; console.log(результат); // Infinity (не ошибка, но ладно) let x = неОбъявленнаяПеременная; // тут будет ошибка } catch (ошибка) { console.log("Произошла ошибка: " + ошибка.message); }
Проверка существования элемента:
let элемент = document.getElementById("несуществующийId"); if (элемент) { элемент.innerHTML = "Нашёлся!"; } else { console.log("Элемент не найден на странице"); }
Урок 12: Полезные приёмы на каждый день
Шаблонные строки (вместо склеивания):
let имя = "Вася"; let возраст = 25; console.log(`Привет, ${имя}! Тебе ${возраст} лет.`); // Кавычки с обратным апострофом (на клавише Ё)
Короткий if (тернарный оператор):
let возраст = 18; let статус = возраст >= 18 ? "взрослый" : "ребёнок"; console.log(статус);
Случайное число:
let от0до1 = Math.random(); // от 0 до 1 let от1до10 = Math.floor(Math.random() * 10) + 1; let от0до100 = Math.floor(Math.random() * 101);
Округление:
let число = 3.7; Math.floor(число); // 3 (вниз) Math.ceil(число); // 4 (вверх) Math.round(число); // 4 (по правилам)
Таймер (отложенное выполнение):
// выполнится через 3 секунды setTimeout(function() { alert("Прошло 3 секунды!"); }, 3000); // повторять каждые 2 секунды let интервал = setInterval(function() { console.log("Tick"); }, 2000); // остановить интервал clearInterval(интервал);
Проверка, что переменная — число:
let значение = prompt("Введи число"); if (!isNaN(значение) && значение !== null && значение !== "") { alert(`Это число: ${Number(значение)}`); } else { alert("Это не число!"); }
Практические проекты для закрепления
Проект 1 — Калькулятор возраста:
let годРождения = prompt("В каком году ты родился?"); let текущийГод = 2026; let возраст = текущийГод - Number(годРождения); alert(`Тебе ${возраст} лет (или около того)`);
Проект 2 — Угадай число (игра):
let секрет = Math.floor(Math.random() * 10) + 1; let попытки = 3; while (попытки > 0) { let ответ = Number(prompt(`Угадай число от 1 до 10. Осталось попыток: ${попытки}`)); if (ответ === секрет) { alert("Поздравляю! Ты угадал!"); break; } else if (ответ > секрет) { alert("Много"); } else if (ответ < секрет) { alert("Мало"); } попытки--; if (попытки === 0) { alert(`Игра окончена. Было загадано ${секрет}`); } }
Проект 3 — Список дел в браузере:
Сохрани как todo.html и открой:
<!DOCTYPE html> <html> <head> <title>Список дел</title> </head> <body> <h2>Мои дела</h2> <input type="text" id="новоеДело" placeholder="Новое дело..."> <button onclick="добавитьДело()">Добавить</button> <ul id="списокДел"></ul> <script> let дела = []; function показатьДела() { let список = document.getElementById("списокДел"); список.innerHTML = ""; for (let i = 0; i < дела.length; i++) { список.innerHTML += `<li>${дела[i]} <button onclick="удалитьДело(${i})">Удалить</button></li>`; } } function добавитьДело() { let поле = document.getElementById("новоеДело"); let текст = поле.value; if (текст !== "") { дела.push(текст); поле.value = ""; показатьДела(); } } function удалитьДело(индекс) { дела.splice(индекс, 1); показатьДела(); } </script> </body> </html>
Что делать дальше?
Ты уже знаешь:
- Переменные, типы данных, математику
- Условия (if/else) и циклы (for/while)
- Массивы и объекты
- Функции (создание и вызов)
- Работу с веб-страницей (DOM)
Куда двигаться:
- Изучи события (click, mouseover, keydown)
- Изучи fetch — как получать данные с сервера
- Изучи localStorage — как сохранять данные в браузере
- Попробуй фреймворки: React, Vue или Svelte
Где брать помощь:
- Открой консоль (F12) — там все ошибки
- MDN Web Docs (набери в поиске «MDN что-хочешь-узнать»)
- Загугли: «javascript как сделать …»
Antistatus 15.04.2026 08:36