Баннер 300x250

Интенсивный онлайн‑курс: Профессиональный JavaScript. Уровень 1



Курс: «Интенсивный онлайн‑курс: Профессиональный JavaScript. Уровень 1.» Крутой материал по программированию на JS от известной компании! Пока что доступен только первый уровень. Этой 14-й поток, который закончился совсем недавно! Когда будет второй — неизвестно. Отзывы только положительные. Материал получает метку эксклюзивного материала! 

Описание курса:
Курс рассчитан на людей без навыков программирования. Для прохождения понадобятся навыки вёрстки, которые можно получить пройдя интерактивные курсы или интенсив «Профессиональный HTML и CSS, уровень 1».
Программа обучения:
Знакомство. Рассмотрим схему работы на интенсиве, какие инструменты понадобятся. Начнём разбирать основы JavaScript:
Организационные вопросы:
  • Обзор проектов.
  • Схема работы на интенсиве.
  • Введение в программирование:
  • Программирование и алгоритмы.
  • Данные.
  • Линейные алгоритмы.
  • Ветвящиеся алгоритмы.
Основы JavaScript:
  • Типы данных.
  • Операторы.
  • Приведение типов.
  • Переменные.
  • Функции.
  • Условные операторы.
Встроенные API. Разбираемся со сложными типами данных: массивы и объекты, циклические алгоритмы, а также посмотрим на встроенные в JavaScript объекты для работы с окном браузера, открытой страницей, DOM-элементами и графикой:
Отладка кода.
Сложные типы данных:
  • Циклические алгоритмы.
  • Массивы.
  • Объекты.
Встроенные объекты:
  • document, элемент для работы c DOM-деревом.
  • canvas, элемент для работы c программируемой графикой.
DOM. Пробуем создавать, удалять, перемещать и управлять DOM-элементами. Опишем данные, которые будем отображать на странице, а затем, с помощью шаблонов отрисуем их:
Управление DOM-деревом:
  • DOM-дерево: структура.
  • Поиск элементов на странице.
  • Управление атрибутами DOM-элементов.
  • Перемещение элементов в DOM-дереве.
Подходы к созданию DOM-элементов:
  • Управление разметкой: insertAdjacentHTML, innerHTML, textContent.
  • Создание DOM-объектов.
Шаблонизация:
  • Строковая шаблонизация.
  • Специальный тег <template>.
Обработка событий. Рассмотрим динамическое взаимодействие с пользователем: как сделать так, чтобы страница начала реагировать на ввод текста в формы, нажатие на определённые элементы, прокрутки и прочее. Заодно попробуем сделать страницу более доступной: как добавить правильную работу с клавиатурой и зачем это нужно:
Асинхронность, Event Loop.
События:
  • Обработчики событий.
  • Объект Event, управление событиями.
  • Фазы событий и делегирование.
  • Клавиатурные события и доступность.
  • Валидация форм.
Модули. Обсудим принцип DRY (не повторяйся) и как им пользоваться для того, чтобы писать меньше кода, но при этом делать больше:
Перетаскивание:
  • Изменение координат элементов на странице.
  • Drag and Drop.
  • Области видимости функций:
  • Области видимости.
  • Глобальная область видимости.
  • Замыкания.
  • Потеря окружения.
Модульность:
  • Повторное использование кода, принцип DRY.
  • Функции как модули.
  • Понятие модуля, виды модулей.
  • Инкапсуляция.
  • Немедленно выполняющиеся функции (IIFE).
Работа с сетью. Взглянем на протокол HTTP и инструменты, которые позволяют делать запросы из браузера. Рассмотрим, как меняется взаимодействие пользователя с сайтом при начале работы с сетью, что может пойти не так и что с этим делать:
  • Исключения.
  • Оператор множественного выбора switch.
  • Протокол HTTP и форматы данных:
  • XML.
  • JSON.
  • JSONP.
  • Объект XMLHttpRequest.
  • Обработка ошибок в запросах.
Структуры данных. Разберём непопулярную среди фронтенд-разработчиков тему структур данных. Что такое данные, почему у них есть структура, и на доступных примерах посмотрим, как использование структур данных может облегчить разработчику жизнь:
Контекст функций:
  • Ключевое слово this.
  • Изменение контекста.
Продвинутая работа с массивами:
  • Управление массивами: вставка и удаление элементов.
  • Выборки из массива: slice и filter.
  • Сортировка.
  • Итераторы по массивам.
  • Свёртка массивов: some, every и reduce.
Оптимизации производительности:
  • Оценка эффективности алгоритмов.
  • Пропуск кадров — тротлинг (throttle).
  • Устранение дребезга — дебаунс (debounce).
Компонентный подход. Разберём продвинутую работу с объектами, узнаем как можно удобным способом создавать большое количество одинаковых объектов и зачем это нужно:
Типизированные объекты:
  • Функции-конструкторы.
  • Прототипы.
  • Цепочки прототипов, наследование.
  • Полиморфизм, переопределение методов.
Рефакторинг.
Узкие места в JavaScript. Посмотрим на особенности JavaScript, которые лучше не забывать учитывать при разработке. Заодно взглянем на дополнительные полезные техники, не разобранные на интенсиве:
  • Необязательные точки с запятой.
  • Подвешивание (hoisting) переменных и функций.
  • Продвинутые техники программирования.
  • Регулярные выражения.
  • Минификация кода.

Финал. Подводим итоги интенсива. Что делать дальше.