Оглавление
Учебник JavaScript
Последовательный курс JavaScript с нуля: от первой программы до продвинутых тем.
1.Основы
- Введение в JavaScriptЧто такое JavaScript, где он выполняется и как выглядит первая программа.
- ПеременныеКак объявлять переменные в JavaScript через let и const, давать им имена и подставлять в строки.
- Типы данныхОсновные типы данных JavaScript — числа, строки, логические значения, null и undefined, оператор typeof.
- ЧислаЧисла в JavaScript — целые и дробные, округление, объект Math, toFixed и особые значения Infinity и NaN.
- СтрокиСтроки в JavaScript — кавычки, склеивание, шаблонные строки, длина, доступ к символам и первые методы.
- ОператорыАрифметические операторы JavaScript, остаток от деления, приоритет операций, составное присваивание, ++ и --.
- Преобразование типовКак превратить строку в число и обратно в JavaScript — Number, String, Boolean, parseInt и неявное преобразование.
- СравнениеОператоры сравнения в JavaScript — больше, меньше, строгое и нестрогое равенство, сравнение строк и NaN.
2.Управление ходом программы
- УсловияВетвление в JavaScript — if, else, else if, истинные и ложные значения и тернарный оператор.
- Логические операторыЛогические операторы JavaScript — И, ИЛИ, НЕ, их приоритет, значения по умолчанию через || и оператор ??.
- Конструкция switchКак выбрать один из многих вариантов с помощью switch в JavaScript — case, break, default и объединение вариантов.
- ЦиклыЦиклы while, for и for...of в JavaScript — счётчик, шаг, перебор строки и накопление результата.
- Управление цикломКак досрочно остановить цикл или пропустить итерацию в JavaScript — break, continue, поиск и вложенные циклы.
3.Функции
- ФункцииКак объявлять и вызывать функции в JavaScript — объявление, вызов, параметр, return и выход из функции.
- ПараметрыПараметры и аргументы функций в JavaScript — несколько параметров, порядок, недостающие аргументы и значения по умолчанию.
- Стрелочные функцииФункциональные выражения и стрелочные функции в JavaScript — короткая запись, неявный return и тело в фигурных скобках.
- Область видимостиГде видны переменные в JavaScript — локальные и глобальные переменные, блочная область видимости и затенение.
- ЗамыканияЧто такое замыкание в JavaScript — функция, которая помнит внешние переменные, счётчики и фабрики функций.
- КолбэкиФункции обратного вызова в JavaScript — как передать функцию в другую функцию и зачем это нужно.
- РекурсияРекурсия в JavaScript — функция, которая вызывает саму себя, базовый случай, факториал и стек вызовов.
4.Массивы
- МассивыЧто такое массив в JavaScript: создание, индексы, длина, изменение элементов и вложенные массивы.
- Методы массивовКак добавлять и удалять элементы массива в JavaScript: push, pop, shift, unshift, slice, splice, concat и join.
- Перебор массиваКак пройти по всем элементам массива в JavaScript: цикл for, for...of, forEach и entries.
- map, filter и reduceТри главных метода обработки массивов в JavaScript: преобразование, отбор и сведение к одному значению.
- Поиск в массивеКак найти элемент в массиве JavaScript: includes, indexOf, find, findIndex, some и every.
- Сортировка массивовКак отсортировать массив в JavaScript: sort, функция сравнения, сортировка чисел, строк и объектов, reverse и toSorted.
5.Объекты
- ОбъектыОбъекты в JavaScript: свойства, доступ через точку и квадратные скобки, добавление, удаление и вложенные данные.
- Методы и thisМетоды объектов в JavaScript, слово this, краткая запись свойств и методов и потеря this.
- Перебор и функции ObjectКак перебрать объект в JavaScript: Object.keys, Object.values, Object.entries, Object.fromEntries, for...in и Object.hasOwn.
- ДеструктуризацияДеструктуризация массивов и объектов в JavaScript — как разложить значения по переменным одной строкой.
- Операторы spread и restТри точки в JavaScript — раскрытие массивов и объектов, копирование, объединение и остаточные параметры.
- Опциональная цепочка и ??Безопасный доступ к вложенным свойствам в JavaScript: оператор ?., вызов необязательных методов и значения по умолчанию через ??.
- JSONФормат JSON в JavaScript: превращение объектов в строку через JSON.stringify и обратно через JSON.parse.
- Map и SetКоллекции Map и Set в JavaScript: словарь с ключами любого типа и набор уникальных значений.
6.Текст, даты и форматирование
- Методы строкПолезные методы строк в JavaScript: поиск позиции, доступ к символам, padStart, repeat, split и join, цепочки методов.
- Шаблонные строкиШаблонные строки в JavaScript: подстановка значений и выражений, многострочный текст, условия внутри шаблона и теговые шаблоны.
- Регулярные выраженияРегулярные выражения в JavaScript для начинающих: шаблоны, флаги, классы символов, проверка, поиск и замена текста.
- Дата и времяОбъект Date в JavaScript: создание даты, чтение года, месяца и дня, изменение даты, разница между датами и формат ISO.
- Форматирование: IntlФорматирование чисел, денег, дат и окончаний слов в JavaScript с учётом языка: toLocaleString, Intl.NumberFormat, Intl.DateTimeFormat и Intl.PluralRules.
7.Классы
- Классы и объектыКлассы в JavaScript: объявление класса, конструктор, поля, методы, this и создание объектов через new.
- НаследованиеНаследование классов в JavaScript — extends, super, переопределение методов и instanceof.
- Приватные и статические членыПриватные поля и методы классов JavaScript через #, инкапсуляция, статические методы и свойства.
- Геттеры и сеттерыГеттеры и сеттеры в классах JavaScript: вычисляемые свойства, проверка значений при записи и свойства только для чтения.
- ПрототипыКак устроено наследование в JavaScript изнутри: прототип объекта, цепочка прототипов, методы классов в prototype и Object.create.
8.Обработка ошибок
- Ошибки и try...catchОбработка ошибок в JavaScript: блоки try, catch и finally, объект ошибки, оператор throw и встроенные типы ошибок.
- Свои классы ошибокСобственные ошибки в JavaScript: наследование от Error, свойство name, дополнительные данные, проверка через instanceof, повторный выброс и cause.
- ОтладкаКак искать ошибки в JavaScript: чтение сообщения об ошибке, console.log и его варианты, проверка типов, инструменты разработчика и debugger.
9.Асинхронность
- Цикл событийКак JavaScript выполняет код: синхронный и асинхронный код, очередь задач, микрозадачи и цикл событий.
- ТаймерыФункции setTimeout и setInterval в JavaScript: отложенный и повторяющийся вызов, аргументы, отмена таймера.
- ПромисыПромисы в JavaScript: состояния промиса, then, catch, finally, создание промиса через new Promise и цепочки.
- Несколько промисов сразуPromise.all, Promise.allSettled, Promise.race и Promise.any в JavaScript: как ждать несколько асинхронных действий одновременно.
- async и awaitАсинхронные функции в JavaScript: async, await, обработка ошибок через try...catch, последовательное и параллельное ожидание.
- Запросы к серверу: fetchФункция fetch в JavaScript: GET- и POST-запросы, объект ответа, статус, response.ok, разбор JSON и обработка ошибок.
10.Модули и пакеты
11.Работа со страницей
- Поиск элементов на страницеЧто такое DOM и как находить элементы страницы в JavaScript: querySelector, querySelectorAll, поиск внутри элемента и проверка на null.
- Изменение страницыКак менять элементы страницы из JavaScript: textContent, innerHTML, классы через classList, стили, атрибуты, data-атрибуты и скрытие элементов.
- Создание и удаление элементовКак создавать элементы в JavaScript через createElement, вставлять их методами append, prepend, before и after, строить список из массива и удалять элементы.
- СобытияСобытия в JavaScript: addEventListener, клик, объект события, ввод текста, нажатия клавиш и отписка от события.
- Всплытие и делегирование событийКак события всплывают от элемента к родителям, чем target отличается от currentTarget и как один обработчик на родителе обслуживает много элементов.
- ФормыРабота с формами в JavaScript: событие submit и preventDefault, чтение полей, FormData, флажки и списки, проверка данных и сообщения об ошибках.
- Хранение данных в браузереlocalStorage и sessionStorage в JavaScript: сохранение, чтение и удаление данных, хранение объектов через JSON и разница между хранилищами.
- Данные с сервера на страницеКак загрузить данные и показать их на странице: состояние загрузки, вывод списка, обработка ошибок, загрузка по кнопке и запрос через fetch.
12.Продвинутые темы
- Итераторы и генераторыКак работает for...of в JavaScript: перебираемые объекты, итераторы и метод next, функции-генераторы с yield и свой перебираемый объект.
- СимволыТип symbol в JavaScript: уникальные значения, символы как ключи объектов, скрытые свойства, глобальный реестр Symbol.for и встроенные символы.
- this, call, apply и bindКак в JavaScript определяется this, почему метод теряет контекст и как задать this вручную методами call, apply и bind.
- Неизменяемость данныхИзменяемые и неизменяемые данные в JavaScript: ссылки на объекты, копирование через spread, методы toSorted и with, Object.freeze и structuredClone.
- Строгий режимДиректива use strict в JavaScript: какие ошибки ловит строгий режим, this в функциях, запрещённый синтаксис и где строгий режим включён автоматически.
- Новые возможности языкаПолезные новинки JavaScript последних лет: разделители в числах, метод at, логическое присваивание, findLast и Object.groupBy.