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+ практичних завдань

JavaScript (Node.js)

Як працює веб: від URL до HTTPS, API і безпеки

Шлях запиту від URL до готової сторінки: DNS, TCP, TLS, HTTP, кеш, cookies, API і захист вебзастосунків.

11 модулів · 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-помічник з навчання в кожному курсі; усі уроки, домашні завдання та автоматична перевірка; нові курси за підпискою додаються автоматично.

Не знайшли відповідь?

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