Высший учебник JavaScript
Стилизация
Стилизация через атрибут style
Единицы измерения в атрибуте style
Ошибки с единицами измерения
Распаковка значений CSS свойств
Сброс стилей через style
Массовая установка стилей
Проблемы чтения стилей
Чтение свойств из CSS файлов
Преобразование прочитанных значений
Стилизация классами
Один класс для стилизации
Неудобство классов
Чередование стилей через data-
Метрики элементов
Расширение элементов в CSS
Тестовый элемент
Клиентский размер элемента
Полный размер элемента
Размеры элемента с прокруткой
Прокрутка элементов
Изменение прокрутки элемента
Прокрутка элемента до конца
Распахивание элемента
Ширина полосы прокрутки
Метрики окна
Размеры окна
Размеры окна с учетом прокрутки
Получение прокрутки окна
Получение и изменение прокрутки окна
Метод для прокрутки окна в положение
Метод для прокрутки окна на величину
Метод для прокрутки окна к элементу
Событие прокрутки
Коллекции Map
Коллекции Set
Введение
Начальное заполнение
Полезные возможности
Перебор циклом
Преобразование
Удаление дублей из массива
Получение без дублей
Псевдомассивы
Введение
Сходство с массивами
Отличия
Проверка на массив
Преобразование к массиву
Типы псевдомассивов
Разница между типами
Символы
Введение в тип Symbol
Описания символа
Символы ключи объектов
Перебор объекта с символами
Функция в объекте
Операции с объектами в функции
Глобальные символы
Получение имени символа
Хорошо известные символы
Итераторы
Итерируемые объекты
Функция итератора
Вызовы итератора
Генераторы
Циклы в генераторах
Однократная работа итераторов
Итератор объекта
Создание итерируемого объекта
Генератор через вычисляемое свойство
Встроенный итератор values
Встроенный итератор keys
Встроенный итератор entries
Три встроенных итератора
Оператор spread и итераторы
Встроенные итераторы строк
Массив цифр числа
Нумерация DOM элементов
Получение данных DOM элементов
Формат JSON
Хранилище
Введение
Хранилище в отладчике
Данные
Однократное сохранение
Перезапись данных
Удаление данных
Очистка хранилища
Количество записей
Получение ключа по номеру
Перебор хранилища по индексам
Массивы ключей и значений хранилища
Хранение структур
Модификация хранимых структур
Практика
Регулярные выражения
Введение
Операторы повторения
Группирующие скобки
Экранировка спецсимволов
Фигурные скобки
Ограничение жадности
Группы символов
Наборы символов
Инвертирование наборов символов
Особенности кириллицы
Спецсимволы внутри наборов
Группы символов внутри наборов
Спецсимволы-исключения внутри наборов
Символ шляпки внутри наборов
Особенности дефиса внутри наборов
Игнорирование регистра
Начало и конец строки
еще задач с долларом
Граница слов
Многострочность
Команда 'или'
еще задач
Переменная с регуляркой
Метод test
Метод search
Метод split
еще задачи?
Метод match
Карманы в методе match
Глобальный match
Глобальный matchAll
Метод exec
Свойство lastIndex
Карманы в методе replace
Коллбэк в методе replace
Карманы по умолчанию в методе replace
пример получше
Карманы в самой регулярке
Именованные карманы
Именованные карманы внутри выражения
Несохраняющие скобки
задачи
Позитивный и негативный просмотр
Строка с регуляркой
Флаги для строк
Обратный слеш в строках
Исключительные ситуации
Введение
Виды возникающих ситуаций
Перехват исключений
Разработка с try-catch
Перехват исключений во вложенном коде
Объект с исключением
Основные типы исключений
Применение типов исключения
Выбрасывание исключений
Выбрасывание различных типов исключений
Выбрасывание своих типов исключений
Пример исключения с data- атрибутами
Пример исключения с JSON
Проброс исключений
Асинхронность
Синхронный и асинхронный код
Асинхронность событийной модели
Асинхронность загрузки картинок
Исключительные ситуации в асинхронном коде
Асинхронные коллбэки
Введение
Асинхронная передача результата в коллбэк
Передача параметров в асинхронный коллбэк
Обработка исключений в асинхронных коллбэках
Загрузка картинок
Проблема callback hell
Асинхронная загрузка картинок в цикле
Промисы
Введение в промисы
Исключительные ситуации
Объект с ошибкой
Отдельный перехват исключений
Состояния промиса
Цепочки промисов
задачи
Промисы внутри цепочки
задачи
Исключения в цепочках промисов
задачи
Работа с массивами промисов
Создание сработавших промисов
задачи
Промисификация асинхронного кода
Проблема promise hell
задачи
Промисы в синхронном стиле
Исключения в синхронном стиле
задачи
Библиотеки
Инструменты
Семантическое версионирование
Терминал
стоит ссылка на учебник
NodeJS
Введение в npm
Установка через npm
Короткая форма установки
Зависимости в файле package.json
Dev зависимости
Форматы версий зависимостей
Настройки файла package.json
Создание файла package.json
Перенос npm проекта
Файл package-lock.json
Обновление пакетов
Удаление пакетов
Глобальная установка через npm
Глобальное удаление пакетов
Инструмент npx
Запуск скриптов через npm
Менеджер Yarn
стоит ссылка на сторонний источник
Модули ES
Введение в модули
Включение ES модулей
Установка Webpack
Принцип работы Webpack
Настройка Webpack
Настройка запуска сборки Webpack
Тестовая сборка через Webpack
Подключение бандла к верстке
Создание ES модуля
Подключение ES модуля
Переименование при импорте
Импорт всего содержимого модуля
Экспорт по умолчанию
Комбинация экспортов
Импорт всего содержимого при комбинации экспортов
Экспорт значений
Значения как константы
Импорт npm модулей
Динамический импорт
Динамический множественный импорт
Преобразование CommonJS модулей
Протокол HTTP
Тестовый сервер
Введение
Использование
Выполнение кода
Генерация HTML
Заголовки ответа
Настройка порта
Множественный запуск
Формы
Отправка форм
Методы отправки форм
Отправка форм методом GET
Отправка форм методом POST
GET запросы
Применение GET запросов
Кнопки формы
Отправка форм через JavaScript
Запрет отправки формы
Введение в FormData
Методы FormData
Итераторы FormData
AJAX
Введение в AJAX
Основы работы с fetch
Код HTTP ответа
Успешность запроса
Исключительные ситуации
Полный перехват ошибок
Заголовки HTTP ответа
Получение JSON
Заголовки HTTP запроса
GET запросы
POST запросы
Данные через URLSearchParams
Данные через FormData
Отправка всей формы
Отправка JSON
Политика CORS
Передача куки
Синхронный стиль
Работа с канвас
Начало работы
Рисование линий
Рисование прямоугольников
Рисование окружностей
Смена цвета линии
Смена размера линий
Циклы
Оптимизация кода
Факторы скорости загрузки сайта
Доступные ресурсы
Оптимизация повторных операций
Оптимизация повторения тяжелых операций
Оптимизация цикличных операций
Оптимизация лишних проходов цикла
Оптимизация через встроенные функции
Выбор оптимального алгоритма
Оптимизация использования регулярок
Оптимизация работы с DOM
Оптимизация потребления памяти
Оптимизация преобразования в массив
Оптимизация обработчиков событий
Оптимизация скорости за счет памяти
Данные
Иммутабельность
Копия массива
Копия объекта
Добавление элементов в массив
Удаление элементов массива
Изменение элементов массивов
Массив объектов
Генерирование случайного id
Добавление элемента с id
Удаление элемента по id
Изменение элемента по id
Изменение одного свойства по id
Получение элемента по id