раздел 03
JavaScript
Замыкания, контекст, прототипы, исключения, итераторы.
Начать раздел
Хочу пройти
Не получилось изменить список. Попробуй ещё раз.
Без входа у каждого урока видно начало. Войди, чтобы читать целиком, отмечать пройденное и решать задачи. войти
Уроки раздела
Понятия курса
Понятия разобраны внутри уроков. Нажми на понятие, чтобы открыть урок, где оно объясняется.
Junior
- Базовые конструкцииПеременные, control flow, функции, scope, closures, this/bind/call/apply, spread/rest, деструктуризация, примитивы, рекурсия.урок 1 · Синтаксис, типы и приведениеопираются: урок 2, урок 3, урок 4, урок 5, урок 6, урок 7, урок 8
- ЗамыканияLexical scope, замыкание это функция плюс захваченное окружение. Где помогают, где текут.урок 2 · Функции, scope, замыкания
- Логические операторы и приведение типов&&, ||, ?? возвращают исходное значение, не булево. Truthy/falsy, == vs ===, ToPrimitive.урок 1 · Синтаксис, типы и приведение
- ООП в JS: прототипы и классыПрототипная природа классов. Композиция. DRY/KISS/SOLID на практике.урок 3 · Объекты, массивы, прототипы
- Передача по значению и по ссылкеПримитивы и объекты, мутации параметров, как защититься через копирование или иммутабельные обёртки.урок 1 · Синтаксис, типы и приведение
- Array & Object: методы и алгоритмыmap/filter/reduce/some/every/sort/toSorted/flatMap, Object.entries/keys/values, deep equality.урок 3 · Объекты, массивы, прототипыопираются: урок 5
- Hoisting и TDZПоднятие var/function/class/let/const, временная мёртвая зона, function-statement vs function-expression.урок 2 · Функции, scope, замыкания
- IIFE и истоки модульной системыIIFE как способ изоляции до ES-модулей. Путь: IIFE, AMD, CommonJS, UMD, ESM.урок 2 · Функции, scope, замыкания
- Promise, async/await, event loop базовоPromise.all/allSettled/race/any, цепочки, micro/macro tasks, setTimeout, рекурсивные async.тема без урока
- Rest, spread и argumentsRest-параметры и spread, псевдомассив arguments, function.length против arguments.length.урок 2 · Функции, scope, замыкания
- this, call/apply/bind, стрелочные функцииПравила связывания this: явное (call/apply/bind), неявное (метод), стрелочные не имеют своего this.урок 2 · Функции, scope, замыкания
Middle
- Алгоритмы и структуры в JSСвязные списки, очередь, стек, словарь, дерево, граф, DP, greedy, binary search.тема без урока
- Бинарные данные: ArrayBuffer, TypedArray, DataViewСырая память и окна над ней, endianness, TextEncoder/TextDecoder, transferable в воркеры.урок 5 · Коллекции и итерационные протоколы
- Оптимизация работы JS на страницеLong Tasks, requestAnimationFrame, requestIdleCallback, batching, debounce/throttle, web workers как выгрузка.урок 8 · Мета и рантайм: Proxy, Reflect, V8 под капотом
- Ошибки, рекурсия, события и таймерыError и cause, свои классы ошибок, try/catch в async, trampoline вместо глубокой рекурсии, таймеры, EventEmitter и EventTarget, AbortController.урок 7 · Ошибки, рекурсия, события и таймеры
- Проектирование ООПВиды полиморфизма, LSP, паттерны Fluent/Builder/Factory/Proxy/Value Object/Strategy/Facade/Adapter/Observer. Coupling/cohesion.урок 3 · Объекты, массивы, прототипы
- Проектирование ФПБарьер абстракций, dynamic dispatch, HOF, pipe/compose, Either для ошибок.урок 4 · ФП-стиль в JavaScript
- Релизный цикл языка: TC39Stage 0-4, полифилы, активные пропозалы, babel.урок 8 · Мета и рантайм: Proxy, Reflect, V8 под капотом
- Строки, regex, Unicode, сериализацияШаблонные строки и теги, UTF-16 и суррогатные пары, Intl и Segmenter, флаги u и v в регулярках, JSON с replacer и reviver.урок 6 · Строки, regex, Unicode, сериализация
- Числа: IEEE 754, Number, BigIntДвоичная плавающая точка, 0.1+0.2 != 0.3, Number.EPSILON, MAX_SAFE_INTEGER, BigInt, NaN, Infinity.урок 1 · Синтаксис, типы и приведение
- freeze, seal, preventExtensions, иммутабельностьТри уровня заморозки, shallow vs deep, structuredClone, immer и immutable.js обзорно.урок 3 · Объекты, массивы, прототипы
- GC в JS и браузереV8 mark-and-sweep, generational GC, причины утечек, WeakRef, FinalizationRegistry, Heap snapshots в DevTools.урок 8 · Мета и рантайм: Proxy, Reflect, V8 под капотом
- Map, Set, Weak*, Proxy, Reflect, Iterator, SymbolДескрипторы Object, продвинутые встроенные коллекции и протоколы.урок 5 · Коллекции и итерационные протоколы
Middle+
- Моделирование доменаDDD, bounded context, aggregate, ontology. Service/repository, MV*, контрактное программирование, AOP, Деметра.тема без урока
- Продвинутая асинхронностьПодробно см. раздел 5: Actor, STM, parallel, sync primitives.тема без урока
- V8 под капотомПотоки V8, JIT (Ignition+TurboFan), hidden classes, GC/mark-and-sweep. JSC, SpiderMonkey, Bun.урок 8 · Мета и рантайм: Proxy, Reflect, V8 под капотом
Senior
- Метапрограммирование в JSПрименение Proxy, Reflect, decorators в реальном коде.урок 8 · Мета и рантайм: Proxy, Reflect, V8 под капотом