Prog Academy
RU UA

Курс по подписке

Продвинутый JavaScript: функции, объекты и асинхронность

От «пишу, и оно работает» к «понимаю, почему работает»: современный JavaScript изнутри

  • 12 модулей
  • 35+ практических заданий
  • Автоматическая проверка
  • На русском

Получить доступ к курсу

Курс по подписке · Обучение в своём темпе

О курсе

Что это за курс?

Курс для тех, кто уже знает основы JavaScript и хочет писать код так, как пишут профессиональные разработчики. Вы разберётесь, как функции запоминают своё окружение, как на самом деле устроены объекты и классы, почему this иногда «теряется», как делить программу на модули, строить ленивые последовательности генераторами и, главное, как работает асинхронный JavaScript: цикл событий, микро- и макрозадачи, Promise, async/await, параллельные запросы, повторы, таймауты и ограничение конкурентности.

Аудитория

Для кого этот курс?

  • Знаете основы JavaScript

    Разберетесь, как работают замыкания, прототипы, this и классы, — и будете понимать, почему ваш код работает.

  • Пишете асинхронный код

    Научитесь предсказывать порядок выполнения в цикле событий и писать надежные async-процессы с повторами и таймаутами.

  • Прошли курс основ JavaScript

    Продолжите с функций высшего порядка, модулей ES и CommonJS, итераторов и генераторов.

Сначала нужна подготовка

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

Нужно знать

  • Курс «Основы программирования на JavaScript» или равноценные знания — переменные, условия, циклы, функции, массивы, объекты, строки, методы массивов и try/catch.

    Подробнее
    • Код выполняется во встроенном редакторе; работа с DOM и браузером в курс не входит.

Если этих знаний ещё нет — пройдите курсы по порядку:

  1. С нуля
  2. Обязательно Основы программирования на JavaScript
  3. Этот курс Продвинутый JavaScript: функции, объекты и асинхронность

Результат

Чему вы научитесь

использовать функции высшего порядка, замыкания и каррированные фабрики для переиспользуемого кода

уверенно работать с деструктуризацией, spread/rest, ?. и ??, копированием объектов

агрегировать данные с помощью reduce, Object.groupBy, Map и Set

организовывать код в модули ES и CommonJS

понимать прототипы, this, классы, наследование и приватные поля

строить иерархии собственных ошибок и цепочки причин

писать итераторы и генераторы, в том числе ленивые и бесконечные

предсказывать порядок выполнения асинхронного кода и писать надёжные async-процессы

Формат

Как устроено обучение?

35 практических заданий с автоматической проверкой на скрытых тестах и 12 тестов на понимание. Вы напишете конвейер преобразований текста, собственные map/filter/reduce, мемоизацию с LRU-кешем, нормализацию ответа API, глубокое слияние настроек, аналитику продаж и журналов, настоящие модули ES и CommonJS, банковский счёт с приватными полями, шину событий, иерархию собственных ошибок, ленивые генераторы, симулятор цикла событий, повторы с экспоненциальной задержкой, таймауты и пул с ограничением конкурентности. Три задания — отладка чужого кода. Финал — два проекта: конвейер обработки заказов и асинхронный планировщик задач с зависимостями.

  • Теория

    21 урок с примерами

  • Практика в браузере

    35+ заданий с автоматической проверкой

  • Тесты

    12 тестов для самопроверки

  • Свой темп

    Онлайн на my.prog.academy, без установки программ

AI-помощник

AI-помощник рядом во время обучения

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

  • Объяснит иначе

    Не поняли урок с первого раза — попросите объяснить проще или привести ещё один пример.

  • Поможет с заданием

    Застряли — подскажет, с чего начать, и поможет найти ошибку в вашем решении. Готового решения не даёт.

  • Найдёт нужную тему

    Спросите, где объясняли понятие, — и получите ссылки на нужные уроки курса.

  • Продолжит разговор

    Уточняйте без повторов: помощник помнит разговор, а недавние разговоры курса сохраняются.

Входит в каждый тариф оплаченной подписки — Basic и Premium. В Premium лимиты использования AI-помощника выше — им можно пользоваться активнее. Это помощник в обучении, а не генератор готовых ответов: он объясняет и подсказывает, а задания вы решаете сами.

Программа

Программа курса

12 модулей, 35+ практических заданий с автоматической проверкой и 12 тестов. Откройте модуль, чтобы увидеть все темы.

Раздел 1 — Функции как значения 2 урока · 3 практики · 1 тест

Функции первого класса, колбэки, функции высшего порядка, фабрики функций, rest и spread, чистые функции.

  • Теория Функции первого класса и функции высшего порядка
  • Теория Параметры: rest, spread и чистые функции
  • Практика Конвейер обработки текста
  • Практика Собственные map, filter и reduce
  • Практика Сортировка по нескольким полям
  • Тест Функции как значения
Раздел 2 — Замыкания 2 урока · 4 практики · 1 тест

Лексическое окружение, замыкания, приватное состояние, фабрики, once, memoize и типичная ловушка с var в цикле.

  • Теория Лексическое окружение и замыкания
  • Теория Паттерны на замыканиях: once, memoize и ловушка var
  • Практика Независимые счётчики
  • Практика Мемоизация с LRU-кешем
  • Практика Once, after и limit
  • Практика Исправьте замыкание
  • Тест Замыкания
Раздел 3 — Деструктуризация, spread и безопасный доступ 2 урока · 3 практики · 1 тест

Деструктуризация объектов и массивов, spread/rest для данных, поверхностное и глубокое копирование, операторы ?. и ??.

  • Теория Деструктуризация объектов и массивов
  • Теория Spread, копирование, ?. и ??
  • Практика Нормализация ответа API
  • Практика Глубокое слияние настроек
  • Практика Исправьте общие корзины
  • Тест Деструктуризация и копирование
Раздел 4 — Коллекции и агрегации 2 урока · 3 практики · 1 тест

reduce для сложных агрегаций, Object.groupBy, flatMap, Object.fromEntries, Map и Set.

  • Теория Агрегации: reduce, groupBy и flatMap
  • Теория Map и Set
  • Практика Отчёт о продажах
  • Практика Анализ журнала сервера
  • Практика Уникальные посетители
  • Тест Коллекции
Раздел 5 — Модули 1 урок · 2 практики · 1 тест

Зачем нужны модули, ES-модули (import/export), CommonJS (require/module.exports), область видимости модуля и кеширование.

  • Теория Модули: ES modules и CommonJS
  • Практика Модуль для работы с деньгами (ES modules)
  • Практика Модуль статистики (CommonJS)
  • Тест Модули
Раздел 6 — Прототипы и this 2 урока · 3 практики · 1 тест

Цепочка прототипов, Object.create, собственные и унаследованные свойства, функции-конструкторы, правила this, call/apply/bind.

  • Теория Цепочка прототипов
  • Теория this, call, apply и bind
  • Практика Поиск по цепочке прототипов
  • Практика Функция-конструктор Vector
  • Практика Исправьте потерянный this
  • Тест Прототипы и this
Раздел 7 — Классы и наследование 2 урока · 3 практики · 1 тест

Синтаксис class, геттеры и сеттеры, статические члены, приватные поля, extends и super, полиморфизм, композиция.

  • Теория Классы: поля, методы, геттеры и приватность
  • Теория Наследование, super и полиморфизм
  • Практика Банковский счёт
  • Практика Фигуры и полиморфизм
  • Практика Шина событий
  • Тест Классы
Раздел 8 — Ошибки как часть дизайна 1 урок · 2 практики · 1 тест

Собственные классы ошибок, иерархии, instanceof в catch, повторное выбрасывание, finally и цепочки причин (cause).

  • Теория Собственные ошибки, иерархии и причины
  • Практика Ошибки системы бронирования
  • Практика Цепочка причин в конфигурации
  • Тест Ошибки
Раздел 9 — Итераторы и генераторы 2 урока · 3 практики · 1 тест

Протокол итерации, Symbol.iterator, собственные итерируемые объекты, генераторы, ленивые и бесконечные последовательности.

  • Теория Протокол итерации
  • Теория Генераторы и ленивые последовательности
  • Практика Итерируемый диапазон
  • Практика Страницы и партии
  • Практика Ленивые конвейеры
  • Тест Итераторы и генераторы
Раздел 10 — Цикл событий и Promise 2 урока · 3 практики · 1 тест

Однопоточность, стек вызовов, цикл событий, микро- и макрозадачи, состояния Promise, then/catch/finally и цепочки.

  • Теория Как выполняется JavaScript: стек вызовов и цикл событий
  • Теория Promise: состояния, цепочки и ошибки
  • Практика Симулятор цикла событий
  • Практика Промисификация старого API
  • Практика Цепочка платежа с восстановлением
  • Тест Цикл событий и Promise
Раздел 11 — async/await и управление асинхронностью 2 урока · 4 практики · 1 тест

async/await, try/catch с await, последовательное и параллельное выполнение, Promise.all/allSettled/race/any, таймауты, повторы и ограничение конкурентности.

  • Теория async/await: асинхронный код, который читается как обычный
  • Теория Комбинаторы Promise, таймауты, повторы и пулы
  • Практика Параллельная загрузка товаров
  • Практика Повторы с экспоненциальной задержкой
  • Практика Таймауты задач
  • Практика Пул с ограничением конкурентности
  • Тест Async/await и комбинаторы
Раздел 12 — Итоговые проекты 1 урок · 2 практики · 1 тест

Как объединить классы, ошибки, коллекции и асинхронность в надёжный процесс; два итоговых проекта.

  • Теория Собираем всё вместе: надёжные асинхронные процессы
  • Практика Итоговый проект: обработка заказов
  • Практика Итоговый проект: планировщик задач
  • Тест Итоговый тест

Стек

Какие технологии используются?

  • JavaScript (Node.js)

Код пишете и запускаете в браузере на платформе — устанавливать ничего не нужно.

Доступ

Как получить доступ?

  1. Оставьте заявку

    Заполните короткую форму на этой странице.

  2. Завершите регистрацию в Telegram

    После заявки перейдите в Telegram-бот Prog Academy — он пришлёт дальнейшие инструкции по доступу.

  3. Учитесь на платформе

    Уроки, практика и тесты — на my.prog.academy, в удобном для вас темпе.

Контакт

Начните обучение на платформе

Оставьте контакты — пришлём детали доступа к курсу «Продвинутый JavaScript: функции, объекты и асинхронность».

Другие курсы по подписке

Терминал Linux (bash)

Основы Linux

Командная строка с нуля: файлы, права, процессы, сеть, bash-скрипты и SSH — в терминале учебной Ubuntu.

13 модулей · 40+ практических заданий

Кибербезопасность с ИИ: защита от современных атак и безопасная работа с искусственным интеллектом

Защита от современных атак для нетехнических специалистов: фишинг, пароли и MFA, инциденты, дипфейки и безопасная работа с ИИ.

12 модулей · 30+ практических заданий

Частые вопросы о курсе

Что это за курс?

«Продвинутый JavaScript: функции, объекты и асинхронность» — онлайн-курс по подписке на учебной платформе Prog Academy. От «пишу, и оно работает» к «понимаю, почему работает»: современный JavaScript изнутри. Курс для тех, кто уже знает основы JavaScript и хочет писать код так, как пишут профессиональные разработчики. Вы разберётесь, как функции запоминают своё окружение, как на самом деле устроены объекты и классы, почему this иногда «теряется», как делить программу на модули, строить ленивые последовательности генераторами и, главное, как работает асинхронный JavaScript: цикл событий, микро- и макрозадачи, Promise, async/await, параллельные запросы, повторы, таймауты и ограничение конкурентности.

Для кого этот курс?

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

Какие знания нужны перед стартом?

Нужно: курс «Основы программирования на JavaScript» или равноценные знания — переменные, условия, циклы, функции, массивы, объекты, строки, методы массивов и try/catch. Код выполняется во встроенном редакторе; работа с DOM и браузером в курс не входит.

Какие практические задания будут?

35 практических заданий с автоматической проверкой на скрытых тестах и 12 тестов на понимание. Вы напишете конвейер преобразований текста, собственные map/filter/reduce, мемоизацию с LRU-кешем, нормализацию ответа API, глубокое слияние настроек, аналитику продаж и журналов, настоящие модули ES и CommonJS, банковский счёт с приватными полями, шину событий, иерархию собственных ошибок, ленивые генераторы, симулятор цикла событий, повторы с экспоненциальной задержкой, таймауты и пул с ограничением конкурентности. Три задания — отладка чужого кода. Финал — два проекта: конвейер обработки заказов и асинхронный планировщик задач с зависимостями.

Какие технологии используются?

JavaScript (Node.js). Код пишете и запускаете прямо в браузере на платформе — устанавливать ничего не нужно.

Сколько модулей в курсе?

12 модулей: Функции как значения; Замыкания; Деструктуризация, spread и безопасный доступ; Коллекции и агрегации; Модули; Прототипы и this; Классы и наследование; Ошибки как часть дизайна; Итераторы и генераторы; Цикл событий и Promise; async/await и управление асинхронностью; Итоговые проекты. Практических заданий с автоматической проверкой — 35+, тестов — 12.

Как получить доступ?

Оставьте заявку на этой странице и завершите регистрацию в Telegram-боте Prog Academy — там вы получите дальнейшие инструкции по доступу. Обучение проходит на платформе my.prog.academy в своём темпе.

Входит ли курс в подписку?

Да. Курс входит в подписку на платформе Prog Academy: доступ ко всем курсам по подписке; ai-помощник по обучению в каждом курсе; все уроки, домашние задания и автоматическая проверка; новые курсы по подписке добавляются автоматически.

Не нашли ответ?

Оставьте вопрос — подскажем, подходит ли вам курс и с чего лучше начать.