JavaScript с нуля: полный учебник для начинающих

JavaScript — один из основных языков веб-разработки. Он управляет поведением страниц, реагирует на действия пользователя, работает с формами и сетевыми запросами, запускает интерактивные элементы и помогает получать информацию с сервера. В этом руководстве Вы пройдёте базовые конструкции языка и сразу проверите их в интерактивных песочницах.

Что Вы научитесь делать

За 20–30 минут Вы:

  • запустите первый JavaScript-код;
  • разберётесь с переменными, условиями и функциями;
  • поработаете с массивами;
  • поменяете HTML через JavaScript;
  • отправите первый запрос к API.

Что понадобится: только браузер. Ничего устанавливать не нужно.

JavaScript и его задачи

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

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

Стандарт языка называется ECMAScript. Название JavaScript часто сокращают до JS. С языком Java он не связан, несмотря на похожее имя.

JavaScript применяют и вне браузера. Среда Node.js запускает JS на сервере. В этом учебнике основной упор сделан на браузерный JavaScript: код можно выполнить сразу и увидеть результат.

Как браузер выполняет JavaScript

Браузер получает HTML-документ, строит структуру страницы и запускает подключённые скрипты. JavaScript-движок читает код, проверяет синтаксис и выполняет инструкции. Скрипт может вычислять значения, создавать функции, обращаться к элементам страницы и реагировать на события.

💡 Важно

JavaScript чувствителен к регистру:

1
userName

и

1
username

— две разные переменные.

Для небольшого эксперимента отдельная программа не нужна. Код можно запустить в консоли браузера или прямо в блоке ниже.

Первый код на JavaScript JavaScript
Результат
Консоль
 
▶ Попробуйте сами

Поменяйте

1
Алексей

на своё имя, нажмите «Запустить», затем нажмите «Проверить».

Что здесь происходит:

  • 1
    const userName = 'Алексей';

    создаёт переменную и записывает в неё строку;

  • 1
    document.querySelector('#message')

    находит HTML-элемент с

    1
    id="message"

    ;

  • 1
    textContent

    записывает новый текст внутрь найденного элемента;

  • 1
    console.log()

    отправляет сообщение в консоль песочницы.

⚠ Частая ошибка

1
querySelector()

вернёт

1
null

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

Переменные и типы значений JavaScript

Переменная хранит значение, к которому программа обращается по имени. В современном JavaScript для объявления переменных чаще применяют

1
const

и

1
let

. Через

1
const

удобно объявлять ссылку, которую не планируется переназначать.

1
let

подходит для значения, которое будет меняться.

Тип Пример Что хранит
1
string
1
'Привет'
текст
1
number
1
42
число
1
boolean
1
true

/

1
false
логическое значение
1
undefined
1
undefined
значение ещё не задано
1
null
1
null
значение намеренно отсутствует
1
object
1
{ name: 'Анна' }
набор свойств

Можно пока пропустить

1
BigInt

и

1
Symbol

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

Переменные const и let JavaScript
Результат
Консоль
 
▶ Попробуйте сами

Поставьте начальное значение

1
lessonsCompleted

равным

1
4

. После запуска на странице должно появиться число

1
5

.

Строка

1
let lessonsCompleted = 0;

создаёт переменную со значением

1
0

. Следующая строка берёт текущее число, прибавляет единицу и записывает результат обратно.

1
const language

не переназначается, поэтому для него выбран

1
const

.

Условия if и else

Условие позволяет выбрать одну из веток программы. Конструкция

1
if

запускает блок кода при истинном выражении.

1
else

задаёт ветку для случая, когда проверка дала

1
false

.

Условие if и else JavaScript
Результат
Консоль
 
▶ Попробуйте сами

Поменяйте возраст так, чтобы программа вывела «Доступ разрешён».

Разберём код по строкам.

1
age

хранит возраст. Выражение

1
age >= 18

возвращает

1
true

или

1
false

. При

1
true

выполняется код внутри

1
if

. При

1
false

запускается блок

1
else

.

Циклы for и while

Цикл повторяет один участок программы несколько раз.

1
for

удобен, когда счётчик меняется по понятному правилу.

1
while

продолжает работу, пока его условие остаётся истинным.

Цикл for JavaScript
Результат
Консоль
 
▶ Попробуйте сами

Сейчас программа выводит числа от 1 до 5. Поменяйте цикл так, чтобы он вывел числа от 1 до 10.

В заголовке

1
for

находятся три части.

1
let number = 1

создаёт счётчик.

1
number <= 5

разрешает очередной проход цикла.

1
number++

прибавляет единицу после прохода.

Функции: как не повторять один код

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

1
return

. Такой подход помогает делить программу на небольшие части.

Функция с параметрами JavaScript
Результат
Консоль
 
▶ Попробуйте сами

Поменяйте количество товара с

1
3

на

1
4

. Результат должен стать равен

1
3000

.

Что здесь происходит:

  • 1
    calculateTotal

    — имя функции;

  • 1
    price

    и

    1
    quantity

    — параметры функции;

  • 1
    750

    — первый аргумент, он попадает в

    1
    price

    ;

  • 1
    3

    — второй аргумент, он попадает в

    1
    quantity

    ;

  • 1
    return

    возвращает результат умножения;

  • 1
    total

    получает возвращённое значение.

Массивы и методы map, filter, reduce

Массив хранит упорядоченный набор значений. Элементы получают числовые индексы, отсчёт начинается с нуля. Размер массива JavaScript можно менять:

1
push()

добавляет элемент в конец, а

1
pop()

удаляет последний.

Работа с массивом JavaScript
Результат
Консоль
 
▶ Попробуйте сами

Добавьте в массив строку

1
TypeScript

. После запуска она должна появиться в результате.

Для массивов есть методы, которые часто заменяют ручные циклы.

1
map()

создаёт новый массив после преобразования элементов.

1
filter()

оставляет элементы, прошедшие проверку.

1
reduce()

сворачивает набор значений в один результат. Эти методы удобнее разбирать после базового цикла

1
for

.

Объекты JavaScript

Объект хранит пары «ключ — значение». Такой формат подходит для сущностей с именованными свойствами: пользователя, товара, настройки или записи. К свойству можно обратиться через точку или квадратные скобки.


1
2
3
4
5
6
7
const user = {
  name: 'Анна',
  role: 'developer',
  experience: 2
};

console.log(user.name); // Анна

Здесь

1
user

хранит объект, а

1
name

,

1
role

и

1
experience

являются его свойствами. Запись

1
user.name

читает значение свойства

1
name

.

DOM: связь JavaScript с HTML

DOM (Document Object Model) — программное представление HTML-документа в виде дерева объектов. Через DOM JavaScript находит элементы страницы, меняет текст и атрибуты, создаёт новые узлы и удаляет старые. Событие сообщает скрипту о действии пользователя: клике, вводе текста, отправке формы или нажатии клавиши.

Кнопка и событие click JavaScript
Результат
Консоль
 
▶ Попробуйте сами

Поменяйте код так, чтобы один клик увеличивал счётчик сразу на

1
2

.

⚠ Частая ошибка

Обработчик события нужно передавать функции

1
addEventListener()

, а не вызывать заранее. Запись

1
button.addEventListener('click', handler)

передаёт функцию. Запись

1
handler()

запускает её сразу.

Асинхронный код, Promise и запросы к API

Сетевой запрос требует времени, поэтому браузер не должен останавливать страницу на период ожидания ответа. Для таких задач JavaScript работает с асинхронными операциями. Объект

1
Promise

хранит будущий результат операции, а

1
async/await

помогает записывать асинхронный код последовательно и читаемо.

Первый запрос через Fetch API JavaScript
Результат
Консоль
 
▶ Попробуйте сами

Поменяйте номер записи в адресе с

1
1

на

1
2

и снова запустите код.

1
fetch()

отправляет HTTP-запрос и возвращает Promise.

1
await

ждёт его завершения внутри функции с

1
async

. Свойство

1
response.ok

проверяет успешный HTTP-статус. Метод

1
response.json()

читает JSON-ответ и преобразует его в значение JavaScript.

💡 Важно

1
fetch()

обычно не создаёт исключение из-за HTTP-статуса 404 или 500. Такие ответы нужно проверять через

1
response.ok

или

1
response.status

.

Как учить JavaScript без пробелов в базе

Удобный порядок: синтаксис и переменные, условия, циклы, функции, массивы и объекты, DOM и события, затем Promise,

1
async/await

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

Перед кодом полезно разбивать задачу на отдельные действия. Такой подход подробно разобран в материале про алгоритм программы. Когда базовые конструкции уже не вызывают трудностей, можно перейти к оценке скорости решений и асимптотическому анализу алгоритмов.

Для закрепления базы подойдут маленькие проекты: счётчик, калькулятор, список задач, форма с проверкой полей, фильтр карточек или загрузка информации из открытого API. Один законченный мини-проект обычно даёт больше понимания, чем длинная серия примеров, которые были просто перепечатаны.

Типичные ошибки начинающих

Частая ошибка — переход к React, Vue или другому фреймворку до свободной работы с функциями, массивами, объектами и асинхронным кодом. Фреймворк скрывает часть деталей, поэтому пробелы в базе проявляются позже при отладке. Ещё одна проблема — копирование готового кода без проверки каждой строки.

Следите за консолью браузера: синтаксические ошибки и исключения обычно сразу показывают описание проблемы и строку, где она возникла. Проверяйте небольшие фрагменты отдельно, называйте переменные по смыслу и не помещайте всю логику в одну функцию. Такой стиль упрощает поиск ошибок и дальнейшую работу с проектом.

Куда двигаться дальше

Дальше переходите к отдельным темам JavaScript и отрабатывайте каждую на коде. Ближайший полезный набор — переменные, типы, функции, массивы, DOM, события, Promise,

1
async/await

и Fetch API. Эти темы покрывают базу, которая нужна для большинства браузерных проектов.

JavaScript проще осваивать через короткий цикл: прочитать правило, написать код, намеренно допустить ошибку, найти её и исправить. Интерактивные блоки в этом учебнике можно менять прямо на странице, поэтому работайте с ними как с небольшой рабочей средой. С какой задачей на JavaScript Вы хотите разобраться следующей?

Рекомендую статью:  JavaScript: что это за язык, зачем нужен и где используется
Рейтинг
( 8 оценок, среднее 4.88 из 5 )
Алексей Волконский/ автор статьи

Более 15 лет занимаюсь сайтами, программированием и IT-технологиями. Разбираюсь в веб-разработке, Linux и серверном администрировании, базах данных, алгоритмах, информационной безопасности, SEO, искусственном интеллекте и автоматизации. На kvodo.ru публикую практические инструкции, примеры кода и разборы технических задач, объясняя сложные технологии понятным языком и с упором на применение в реальной работе.

Загрузка ...
Кводо.ру