На цьому курсі починають з основ роботи з JavaScript у браузері. Розглядають Document Object Model та Browser Object Model. Вчать знаходити елементи на сторінці за допомогою querySelector та querySelectorAll. Далі вивчають типи вузлів DOM дерева, їх властивості та методи навігації між ними.
Тут показують, як змінювати структуру сторінки. Вчать створювати нові елементи, вставляти та видаляти вузли, клонувати їх. Розглядають роботу з атрибутами елементів, включаючи data-атрибути. Також вивчають роботу з CSS стилями через className, classList та обчислені стилі.
Цей блок присвячений обробці подій у JavaScript. Починають з основ - що таке подія та основні типи подій. Потім розглядають три способи обробки: через HTML атрибути, властивості DOM вузлів та addEventListener. Далі переходять до об'єкта Event, подій DOMContentLoaded, load, а також подій миші та клавіатури.
Тут детально розбирають фази проходу події DOM деревом - спливання та занурення. Вчать реєструвати обробники на різні фази, скасовувати стандартну поведінку браузера, зупиняти спливання подій. Особливу увагу приділяють делегуванню подій - практичному підходу для ефективної роботи з динамічним контентом.
Спочатку розглядають функції-конструктори та їх відмінності від функцій-фабрик. Вивчають прототипи, цикл for/in та оператор instanceof. Потім переходять до сучасних класів - синтаксису class, конструкторів, методів, геттерів та сеттерів. Розглядають відкриті та закриті поля класів.
Цей модуль присвячений наслідуванню в JavaScript. Вчать створювати ієрархії класів за допомогою extends, працювати з конструкторами в похідних класах через super. Показують, як перевизначати методи та використовувати статичні методи і властивості.
Тут розбирають одну з найважливіших тем - контекст виконання функцій. Вчать змінювати контекст через call, apply та bind. Розглядають планування викликів з setTimeout та setInterval. Особливу увагу приділяють контексту в стрілочних функціях та замиканням - механізму, який дозволяє функціям "пам'ятати" своє оточення.
Цей блок присвячений роботі з HTML формами. Вчать отримувати форми та їх елементи через JavaScript, працювати з різними типами полів введення. Детально розглядають перевірку даних - обробку подій submit, blur, focus, copy, paste та cut. Вивчають вбудовану HTML5 валідацію та додавання власної логіки перевірки, включаючи основи регулярних виразів.
Тут розглядають різні способи зберігання даних у браузері - cookies, sessionStorage та localStorage. Вивчають подію storage для відстеження змін. Також детально розбирають обробку винятків - конструкції try/catch/finally, оператор throw та створення власних типів помилок.
Цей модуль охоплює асинхронне програмування. Починають з відмінностей між синхронним та асинхронним кодом, функцій зворотного виклику. Потім переходять до Promises - створення, ланцюжків, обробки помилок. Вивчають методи Promise API для роботи з кількома асинхронними операціями одночасно.
Останній теоретичний модуль присвячений роботі з мережею. Розглядають основи HTTP протоколу - структуру запитів та відповідей. Детально вивчають метод fetch для відправки HTTP запитів: налаштування параметрів, заголовків, обробка відповідей. Також вчать скасовувати запити, що знадобиться для оптимізації роботи додатків.
Курс завершується двома практичними заняттями, де застосовують всі отримані знання на реальних прикладах. Створюють функціональні веб-додатки з інтерактивним інтерфейсом, роботою з формами, мережевими запитами та обробкою помилок.
Курс включає практичні завдання з перевіркою домашніх робіт. Доступний безкоштовний відеокурс для доповнення навчання. Після завершення можна пройти онлайн-тестування та отримати сертифікат.