Глава 1. Введение в JavaScript
Что такое JavaScript
Первая программа на JavaScript
Выполнение кода javascript
Подключение внешнего файла JavaScript
Консоль браузера и console.log
Глава 2. Основы javascript
Переменные и константы
Типы данных
Арифметические операции
Поразрядные операции
Условные выражения
Условные операторы ?: и ??
Преобразование данных
Введение в массивы
Условные конструкции
Циклы
Отладка и отладчик
Глава 3. Функциональное программирование
Функции
Параметры функции
Результат функции
Стрелочные функции
Область видимости переменных
Замыкания
Функции IIFE
Рекурсивные функции
Переопределение функций
Hoisting
Передача параметров по значению и по ссылке
Глава 4. Объектно-ориентированное программирование
Объекты
Ключевое слово this
Вложенные объекты и массивы в объектах
Копирование и сравнение объектов
Проверка наличия и перебор методов и свойств
Объекты в функциях
Функции-конструкторы объектов
Расширение объектов. Прототипы
Функция как объект. Методы call и apply
Функция Object.create. Конфигурация свойств объектов
Наследование прототипов
Наследование прототипов конструкторов
Инкапсуляция свойств. Геттеры и сеттеры
Деструктуризация
Оператор ?.
Константные объекты. Запрет изменения объекта
Глава 5. ООП. Классы
Классы
Приватные поля и методы
Статические поля и методы
Свойства и методы доступа
Наследование
Глава 6. Массивы
Создание массива и объект Array
Массивы и spread-оператор
Операции с массивами
Наследование массивов
Глава 7. Строки и регулярные выражения
Строки и объект String
Шаблоны строк
Объект RegExp. Регулярные выражения
Синтаксис регулярных выражений
Квантификаторы в регулярных выражениях
Поиск в строке
Группы в регулярных выражениях
Регулярные выражения в методах String
Глава 8. Обработка ошибок
Конструкция try..catch..finally
Генерация ошибок и оператор throw
Типы ошибок
Обработка ошибок и стек вызова функций
Глава 9. Встроенные объекты
Объект Date. Работа с датами
Объект Math. Математические операции
Объект Number
Символы
Proxy
Глава 10. Коллекции и итераторы
Итераторы
Генераторы
Множества Set
Map
WeakSet
WeakMap
Глава 11. Работа с DOM
Введение в DOM
Свойства объекта document
Поиск элементов на веб-странице
Объект Node. Навигация по DOM
Элементы
Создание, добавление и удаление элементов
Управление атрибутами элементов
Управление стилем и классами элементов
Создание своего элемента HTML
Глава 12. События
Введение в обработку событий
Обработчики событий
Передача данных в обработчик события. Объект Event
Распространение событий
События мыши
События клавиатуры
Программный вызов событий
Определение своих событий
Глава 13. Работа с формами
Формы и их элементы
Кнопки
Текстовые поля
Флажки и радиокнопки
Список select
Validation API. Валидация элементов формы
Управление валидацией форм
Глава 14. Работа с браузером и BOM
Browser Object Model и объект window
Диалоговые окна и поиск на странице
Открытие, закрытие и позиционирование окон
История браузера. History API
Объект location
Объект navigator. Получение информации о браузере
Таймеры
Глава 15. Форматы JSON и XML
Работа с JSON
Работа с XML
Глава 16. Хранение данных
Куки
Web Storage
Глава 17. Асинхронность, promise, async и await
Асинхронные функции и коллбеки
Введение в промисы
Получение результата операции в Promise
Обработка ошибок в Promise
Создание цепочек промисовх
Функции Promise.all, Promise.allSettled, Promise.any и Promise.race
Async и await
Асинхронные итераторы
Асинхронные генераторы
Глава 18. AJAX-запросы и XMLHttpRequest
XMLHttpRequest и отправка ajax-запросов
Загрузка HTML с помощью XMLHttpRequest
Загрузка XML с помощью XMLHttpRequest
Загрузка JSON с помощью XMLHttpRequest
Отправка данных в ajax-запросе
Отправка форм в ajax-запросе
Promise в Ajax-запросах
Глава 19. Fetch API
Функция fetch
Объект Response и его свойства
Получение данных из ответа
Настройка параметров запроса. Отправка данных
Создание клиента для REST API
Глава 20. Web Socket API и Server-Sent Events
Web Socket API
Server-Sent Events
Глава 21. Локализация
Введение в Internationalization API
Локализация списков и Intl.ListFormat
Локализация дат и времени
Локализация названий и Intl.DisplayNames
Форматирование чисел и Intl.NumberFormat
Int.Collator и сравнение строк
Глава 22. Модули
Введение в модули
Импорт модуля
Экспорт и импорт компонентов модулей
Экспорт и импорт по умолчанию
Использование псевдонимов при экспорте и импорте
Динамическая загрузка модулей
Глава 23. Canvas API
Canvas и его контекст. Рисование прямоугольников
Настройка рисования
Фоновые изображения
Создание градиента
Рисование текста
Рисование фигур
Рисование изображений
Добавление теней
Редактирование пикселей
Трансформации
Рисование мышью
Сохранение и восстановление состояния canvas
Анимация на canvas
Глава 24. IndexDB API
Создание, открытие и удаление базы данных
Управление базой данных в IndexedDB
Выполнение запросов к базе данных
Добавление объектов в хранилище
Получение данных из IndexDB
Обновление объектов хранилища
Получение количества объектов
Удаление данных из хранилища
Курсоры
Глава 25. Drag-and-Drop API
Перетаскивание элементов с помощью Drag-and-Drop API
Установка и послучение перетаскиваемых данных с помощью DataTransfer
Глава 26. File API
Загрузка файлов
Чтение файлов с FileReader
Отслеживание процесса загрузки файла
Глава 27. Web Worker API
Определение и выполнение веб-воркера
Обмен сообщениями между веб-воркером и основным потоком
Глава 28. Дополнительные Web API
Geolocation API
Battery Status API
Web Speech API. Синтез речи
Web Speech API. Распознавание речи
Web Animation API
Глава 29.Дополнительные статьи
Паттерн пространство имен
Паттерн Модуль
JavaScript в CSS