Чему вы научитесь Асинхронность, Event Loop, промисы, async/await, асинхронные итераторы ООП, классы, функции-конструкторы, наследование, принципы ООП, миксины Геттеры/сеттеры, дескрипторы, методы Object Каррирование, управление контекстом (call/apply/bind) Map, Set, итераторы, генераторы HTTP, REST API, XMLHttpRequest, Fetch, JSON Модули, деструктуризация, обработка ошибок NPM, тонкости методов массивов, работа с Date Готовы перейти от основ к профессионализму? Этот курс – ваш ключ к глубокому пониманию JavaScript. Начните свой путь к уровню Middle с нами! Цель курса - превратить вас из уверенного новичка в востребованного JavaScript-разработчика, способного создавать сложные и эффективные веб-приложения. Почему именно этот курс? Вы поймете JavaScript изнутри: Узнаете как и почему работает язык (Event Loop, контекст, прототипы) – перестанете бояться сложного кода. Начнете думать как архитектор: Узнаете какие инструменты используются для проектирования приложения, познакомитесь с классами, функциональными паттернами, модулями. Отработаете навыки для реальной работы: Работа с сетью (Fetch, REST API), данными (JSON, Map/Set), асинхронностью (Промисы, async/await) и инструментами (NPM). Без практики никуда: Каждая концепция закрепляется заданиями, похожими на реальные задачи из разработки. Что вы получите? Уверенность в работе с продвинутыми концепциями JS. Навык проектирования структуры приложений (ООП, модули). Мастерское владение асинхронностью и сетевыми запросами. Профессиональную работу с данными и инструментами (NPM). Понимание "внутренностей" JS, чтобы писать быстрый и чистый код. Особенности курса: Интенсивно и глубоко: Для тех, кто готов перейти на новый уровень. Фокус на понимании: Объясняем не только "как", но и "зачем". Актуальный контент: ES6+ и востребованные индустрией практики. Интересные задания: Теория сразу применяется на практике. Программа: Начало Приветствие Ошибки Дата и время JSON Деструктуризация setTimeout() и setInterval() Структуры Map и Set Каррирование Массивы Вспоминаем массивы Создание и проверка массивов Изменение элементов Поиск и проверка элементов Преобразование массива Сортировка, объединение и преобразование Агрегация Итерация Практика Объекты Свойства в объекте Копирование и клонирование объектов Тип Symbol Функции-генераторы и итераторы Сборщик мусора Контекст Методы call и apply Декораторы Метод bind Дескрипторы свойств Геттеры и сеттеры Функция-конструктор Object Про Object Методы для работы с объектами Методы для управления свойствами объекта Методы для работы с прототипами Методы для проверки и управления состоянием объекта Методы для работы с группировкой и сравнением ООП и функции-конструкторы Введение в ООП в JavaScript Про объекты и прототипы Проблема литеральных объектов Функции-конструкторы Использование прототипа Статические свойства Наследование свойств в функциях-конструкторах Наследование статических свойств Наследование методов в прототипах Запись в свойства объекта Цикл for..in и функции-конструкторы Разница [[Prototype]], __proto__ и prototype Геттеры и сеттеры для функций-конструкторов Переопределение методов Полифилы, расширение стандартных прототипов и автобоксинг Проверка вызова с new Нюансы при работе с функциями-конструкторами instanceof ООП и классы Классы Геттеры и сеттеры в классах Вычисляемые названия свойств и методов Статические свойства и методы Порядок свойств и методов в классе Наследование классов Наследование и порядок создания объекта Приватные методы и свойства Расширение нативных функций-конструкторов Абстрактные классы Миксины Пользовательские ошибки Модули Про модули export и import export default Реэкспорт Особенности и нюансы модулей Асинхронность Асинхронность в JavaScript callback-функции Промисы Промисы с then, catch и finally Промисы и цепочка методов Thenable интерфейс Создание отработанных промисов Обработка ошибок Перехват необработанных отклоненных промисов Статические методы Promise Промисификация async/await Нюансы async/await Асинхронные итераторы, генераторы и for..await Array.fromAsync() Динамические импорты Цикл событий - Event Loop Практика npm Начало работы с npm Версионирование Публикация библиотек Работа с API Что такое HTTP и как он работает Структура HTTP-запроса Методы HTTP-запросов Что такое HTTPS Про API URL XMLHttpRequest Fetch Практика с fetch CORS Аутентификация и авторизация Аутентификация - практика ApiClient - практика