JavaScript
Основы языка, DOM, асинхронность и паттерны
Что такое DOM?
НачальныйDocument Object Model — программный интерфейс браузера для работы с HTML-документами в виде дерева объектов.
Переменные: var, let, const — отличия и когда использовать
НачальныйРазбираемся чем отличаются var, let и const в JavaScript. Область видимости, всплытие, переназначение — с примерами и частыми ошибками.
Event Loop
СреднийКак JavaScript выполняет код и обрабатывает асинхронные операции через Event Loop, стек вызовов и очереди задач.
Замыкания
СреднийЗамыкание — функция, которая запоминает своё лексическое окружение и имеет доступ к переменным внешней области видимости.
Промисы и async/await
СреднийPromise — объект для работы с асинхронными операциями. async/await — синтаксический сахар для удобной работы с промисами.
Прототипы и наследование
СреднийJavaScript использует прототипное наследование — объекты наследуют свойства и методы через цепочку прототипов.
Типы данных в JavaScript: примитивы, объекты, typeof и приведение типов
НачальныйВсе типы данных JavaScript — string, number, boolean, null, undefined, object, symbol, bigint. Как работает typeof, неявное приведение типов и почему 1 + '1' равно '11'.
Строки в JavaScript: шаблонные литералы, методы строк, Unicode
НачальныйРабота со строками в JavaScript — создание, шаблонные строки, методы (slice, split, replace, trim, includes), Unicode и частые задачи.
Методы массивов в JavaScript: map, filter, reduce, find, some, every
НачальныйПолный справочник по методам массивов JavaScript — forEach, map, filter, reduce, find, findIndex, some, every, includes, sort, flat. Примеры и частые задачи.
Объекты в JavaScript: деструктуризация, spread/rest, Object.keys/values/entries
НачальныйРабота с объектами в JavaScript — создание, деструктуризация, spread-оператор, методы Object.keys, Object.values, Object.entries, Object.assign, shallow copy.
Функции в JavaScript: декларация vs выражение, стрелочные функции, this
НачальныйВсё о функциях JavaScript — объявление, функциональные выражения, стрелочные функции, контекст this, call/apply/bind, аргументы по умолчанию и rest-параметры.
Классы в JavaScript: constructor, extends, super, static, приватные поля
СреднийКлассы ES6+ в JavaScript — синтаксис class, конструктор, наследование extends/super, статические методы, приватные поля #private, геттеры и сеттеры.
Модули в JavaScript: import, export, CommonJS vs ESM, tree shaking
СреднийМодули JavaScript — ES Modules (import/export) и CommonJS (require/module.exports). Именованный и дефолтный экспорт, реэкспорт, динамический import и tree shaking.
Обработка ошибок в JavaScript: try/catch/finally, Error, кастомные ошибки
СреднийОбработка ошибок в JavaScript — try...catch...finally, объект Error, создание кастомных ошибок, Promise.catch, unhandledrejection и лучшие практики.
Map, Set, WeakMap, WeakSet в JavaScript — когда использовать
СреднийКоллекции Map и Set в JavaScript — отличие от объектов и массивов, когда использовать Map вместо Object, Set для уникальных значений, WeakMap и WeakSet для памяти.
Symbol в JavaScript — для чего нужны и как использовать
СреднийSymbol в JavaScript — уникальные идентификаторы, Symbol.iterator, Symbol.toPrimitive, глобальный реестр Symbol.for и практические примеры.
Регулярные выражения в JavaScript: основы и частые паттерны
СреднийРегулярные выражения (RegExp) в JavaScript — синтаксис, методы test/exec, замена и поиск, частые паттерны: email, телефон, URL, пароль,_digit, пробелы.
Итераторы и генераторы в JavaScript: function*, yield, for...of
СреднийИтераторы и генераторы JavaScript — интерфейс Iterable, Symbol.iterator, function* и yield, бесконечные последовательности, ленивые вычисления и async генераторы.
Дата и время в JavaScript: Date, toLocaleDateString, Intl.DateTimeFormat
НачальныйРабота с датами в JavaScript — создание Date, форматирование, разница между датами, toLocaleDateString, Intl.DateTimeFormat и частые задачи с датами.
Числа в JavaScript: Number, Math, BigInt, parseFloat, parseInt
НачальныйРабота с числами в JavaScript — Number, Math, округление, BigInt для больших чисел, parseFloat/parseInt, проблема 0.1 + 0.2, форматирование чисел.
Fetch API в JavaScript: GET, POST, PUT, DELETE и загрузка файлов
СреднийFetch API в JavaScript — HTTP-запросы GET, POST, PUT, DELETE, работа с JSON, заголовки, обработка ошибок, загрузка файлов и FormData.
localStorage и sessionStorage: сохранение данных в браузере
НачальныйlocalStorage и sessionStorage в JavaScript — сохранение данных в браузере, отличия, методы setItem/getItem/removeItem, хранение объектов, сроки жизни и ограничения.
События в JavaScript: addEventListener, всплытие, делегирование, throttle и debounce
СреднийОбработка событий в JavaScript — addEventListener, объект event, всплытие и погружение, stopPropagation, делегирование событий, throttle и debounce.
Web Workers: параллельные вычисления в браузере
ПродвинутыйWeb Workers в JavaScript — выполнение тяжёлых вычислений в фоновом потоке, создание Worker, обмен сообщениями, SharedWorker и ограничения.
Proxy и Reflect в JavaScript: метапрограммирование
ПродвинутыйProxy и Reflect в JavaScript — перехват операций с объектами, геттеры и сеттеры через Proxy, валидация, логирование, Reactivity и примеры использования.