Модуль 3.1: Продвинутый JavaScript
Замыкания
Разбираемся, как функции «запоминают» переменные из места своего рождения — и почему это одна из суперсил JavaScript.
Контекст (this)
Разбираемся с самым коварным словом в JavaScript — this: почему оно меняется в зависимости от того, как вызвана функция.
Прототипы
Узнаём, как JavaScript организует наследование через цепочку прототипов — механизм, который лежит в основе всех объектов и классов.
ES6+ классы
Изучаем классы в JavaScript — красивый синтаксис поверх прототипов, с приватными полями (#), наследованием и современными возможностями ES2022+.
Модули
Изучаем ES-модули: как разбивать код на файлы, экспортировать и импортировать функции, и почему это спасает от глобального хаоса.
Деструктуризация и spread
Учимся вытаскивать данные из объектов и массивов одной строкой, а также разворачивать и собирать элементы с помощью spread и rest операторов.
Map, Set, WeakMap, WeakSet
Изучаем специализированные коллекции JavaScript: Map для словарей с любыми ключами, Set для уникальных значений, и Weak-версии для работы без утечек памяти.
Symbol и итераторы
Узнаём, как Symbol обеспечивает уникальность ключей, как работает протокол итератора и почему генераторы — это мощный инструмент для создания ленивых последовательностей.
Proxy и Reflect
Изучаем Proxy — волшебное зеркало для перехвата операций с объектами, и Reflect — API для корректной работы с этими операциями.
Чистые функции и иммутабельность
Разбираемся, почему чистые функции и иммутабельность делают код предсказуемым — и почему на этих принципах строятся React, Redux и современные фреймворки.