На этом курсе начинают с основ работы с 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 запросов: настройка параметров, заголовков, обработка ответов. Также учат отменять запросы, что понадобится для оптимизации работы приложений.
Курс завершается двумя практическими занятиями, где применяют все полученные знания на реальных примерах. Создают функциональные веб-приложения с интерактивным интерфейсом, работой с формами, сетевыми запросами и обработкой ошибок.
Курс включает практические задания с проверкой домашних работ. Доступен бесплатный видеокурс для дополнения обучения. После завершения можно пройти онлайн-тестирование и получить сертификат.