Замыкания, прототипы, event loop, промисы и async/await — разберись, как язык работает под капотом, и пиши код, который проходит любое собеседование.
Разовая оплата, без подписки. Школьнику курс покупает родитель из кабинета parents.omnex.study.
Ты уже пишешь на JavaScript, но иногда язык ведёт себя как капризный фокусник: `this` внезапно оказывается `undefined`, промис резолвится «не в том порядке», а `0.1 + 0.2` выдаёт что-то странное. Пора убрать магию. Этот курс — про то, как JavaScript устроен под капотом, и как превратить это знание в код, который не разваливается на проде.
Мы пройдём весь путь от контекста выполнения и стека вызовов до прототипов, промисов, async/await, генераторов и Proxy. Никакой зубрёжки: каждый механизм ты сначала увидишь в работе, потом разберёшь по косточкам, а потом соберёшь на нём что-то настоящее. Четыре проекта в портфолио — мини-библиотека коллекций на прототипах, доменная модель на классах, надёжный сетевой загрузчик с ретраями и собственный стейт-менеджер с реактивностью.
Это курс для тех, кто хочет перестать бояться каверзных вопросов на собеседовании и начать давать на них уверенные ответы. Замыкания, event loop, всплытие, приведение типов, разница между `==` и `===`, микрозадачи против макрозадач — после курса всё это станет твоими инструментами, а не источником багов.
35 часов плотной практики, живые примеры, разбор типичных ошибок и код, который не стыдно показать на ревью. Погнали разбираться, как на самом деле работает язык, на котором говорит весь веб.
Заглядываем под капот движка: контекст выполнения, стек вызовов, всплытие, примитивы и ссылки, коварное приведение типов и строгий режим.
Функции как значения, четыре правила this, ручное управление контекстом через call/apply/bind, стрелочные функции, замыкания и их практическая мощь.
Как устроено наследование в JS: прототипная цепочка, Object.create и делегирование, функции-конструкторы, оператор new, общие методы на прототипе и дескрипторы свойств.
Синтаксис class как обёртка над прототипами: наследование через extends и super, приватные поля #, статические члены, геттеры и сеттеры, композиция, миксины и проверка типов.
Как однопоточный JavaScript делает несколько дел сразу: цикл событий, микро- и макрозадачи, колбэки и их ад, промисы, цепочки, обработка ошибок и комбинаторы all/allSettled/race/any.
Синтаксис async/await поверх промисов: обработка ошибок через try/catch, управление параллелизмом, таймауты и отмена через AbortController, подводные камни и надёжный сетевой загрузчик.
Протокол итерации и Symbol.iterator, генераторы function*/yield, коллекции Map и Set, слабые ссылки WeakMap/WeakSet, символы и well-known symbols, перехват операций через Proxy и Reflect.
ES-модули и динамический импорт, паттерны проектирования (Модуль, Синглтон, Наблюдатель), функциональные приёмы, свои классы ошибок, управление памятью и производительностью, финальный стейт-менеджер и подготовка к собеседованию.