Раздел 1: введение
Теория:
- Инструменты работы с JavaScript: браузер, консоль, IDE.
- Введение в работу с системой контроля версий.
- Рабочий процесс на интенсиве.
- Введение в JavaScript.
- Области применения JavaScript.
- Функции, типы данных, переменные.
- Условные операторы, циклы.
- Диалоговые окна.
- Интерпретируемость языка, очередность выполнения команд.
- Исключения.
- Консоль.
Клонирование репозитория.
Выбор IDE.
Настройка рабочего окружения.
Раздел 2: знакомство с DOM
Теория:
- Введение в работу с DOM. Формы.
- События. Модель DOM Level 0.
- Cookies.
- Javascript. Контекст функции.
Валидация данных, введенных в форму.
Сохранение последних валидных данных в форме в cookies.
Раздел 3: погружение в DOM
Теория:
- Продвинутая работа с DOM: создание, удаление элементов, DocumentFragment.
- Введение в шаблонизацию.
- Работа с изображениями.
- Базовые структуры данных: массивы и объекты.
- Библиотеки jQuery, lodash/underscore, mout.
- Интервалы и таймауты.
- Асинхронность JavaScript, очередность выполнения кода, потеря окружения.
Создание DOM-дерева на основе заданной структуры данных.
Добавление обработчиков ошибок и таймеров на загрузку изображений.
Раздел 4: передача и обработка данных
Теория:
- Введение в HTTP: методы, коды состояния, заголовки.
- Введение в AJAX.
- Объект XMLHttpRequest.
- GlobalFetch.
- jQuery.ajax.
- Cross-Origin Resource Sharing (CORS).
- Работа с коллекциями.
- Хранение данных в localStorage.
Загрузка структуры данных с прошлой недели с сервера по AJAX.
Фильтрация списка.
Сохранение состояния фильтров в LocalStorage.
Раздел 5: события
Теория:
- Модель событий DOM Level 2.
- Обработчики событий. Создание, удаление обработчиков.
- Объект Event. Фазы события.
- Контекст функции. Задание контекста.
- Замыкания.
- Делегирование событий.
- Обработка событий в jQuery.
Добавление фотогалереи на учебный проект, начало.
Раздел 6: введение в ООП
Теория:
- Введение в объектно-ориентированное программирование (ООП).
- Особенности ООП в JavaScript: Прототипы. Конструкторы. Цепочка прототипов. Наследование в JavaScript.
Продолжение работы с фотогалереей.
Раздел 7: медиа и графика
Теория:
- HTMLMediaElement на примере audio и video.
- Графика на SVG.
- Введение в графику на Canvas.
Завершение фотогалереи, добавление видеопроигрывателя в качестве одного из слайдов.
Начало работы над интерактивным компонентом учебного проекта.
Раздел 8: работа с состояниями приложения
Теория:
- Работа с адресной строкой. window.location. document.location.
- Введение в работу с историей браузера. pushState/popState.
- Введение в MVC. Библиотека backbone.js
Cохранение состояния приложения в адресной строке браузера и восстановление после перезагрузки страницы.
Рефакторинг кода, согласно паттерну MVC.
Раздел 9: лучшие практики и оптимизация
Теория:
- Лучшие практики JavaScript. Модульность. Паттерны проектирования.
- Введение в работу с памятью, профилирование.
Завершение работы с интерактивным компонентом.
Доведение проекта до финального состояния.
P.S. За раздачу благодарим пользователя Colt