
WEB-007 Разработка на JavaScript
Начало: По мере набора группы
Длительность: 1 неделя
СертификатОнлайн
Описание курса
Изучите увлекательные подходы к разработке интерактивных веб-приложений на JavaScript, включая DOM, асинхронность и фреймворки.
- Версии и реализации JavaScript.
- Области применения JavaScript (браузер, сервер, мобильная разработка).
- Типы данных: String, Number, Boolean (понятие truthy и falsy).
- Операторы, приоритет операторов.
- Объявление переменных: var, const, let.
- Циклы: while, for, for … in, for … of.
- Работа с числами и строками.
- Значения null и undefined: отличия и цели применения.
- Работа с консолью.
- Исключения в JavaScript.
- Формат JSON, примеры.
- JSON.parse и stringify.
- Объекты, работа с классом Object.
- Создание объектов (с помощью литерала {}, оператор new, метод create).
- Прототипическое наследование, ссылка proto.
- Геттеры и сеттеры.
- Оператор in и hasOwnProperty, понятие перечислимых свойств.
- Метод toString(), вызов и переопределение метода.
- Метод valueOf(), вызов и переопределение метода.
- Создание массивов: литералы и new Array().
- Автоматическое изменение длины массива.
- Получение и установка длины массива length, усечение массива.
- Применение методов join() и concat().
- Использование метода sort, задание порядка сортировки массива.
- Использование методов slice и splice.
- Использование методов push, pop, shift, unshift: создание стека или очереди.
- Применение конструктора new Date().
- Понятие компьютерного представления даты как времени с Epoch.
- Использование getTime() и setTime().
- Парсинг строкового представления дат.
- Варианты создания строк в JS: использование одинарных и двойных кавычек.
- Интерполяция строк (строка в апострофах).
- Экранирование специальных символов в строке.
- Конкатенация строк, перевод в верхний и нижний регистр.
- Поиск подстроки с помощью indexOf() и lastIndexOf().
- Выделение подстроки с помощью substring() и substr().
- Применение методов includes, endsWith, startsWith.
- Управление окном браузера, документом, событиями и оформлением (CSS-стилями).
- Объект window и его применение.
- Подключение кода JavaScript к HTML-странице.
- Порядок выполнения скриптов на странице.
- Кэширование скриптов, CDN-серверы, принудительная перезагрузка JavaScript.
- Работа с ссылками, подключение JavaScript к ссылкам.
- Событие onload и его использование.
- XSS-атаки на сайт.
- Работа с DOM: использование window, document, childNodes.
- Манипуляции документом с помощью DOM: создание, удаление, перемещение элементов.
- Использование getElementById(), getElementsByTagName(), getElementsByClassName() для поиска элементов на странице.
- Работа с методами и свойствами HTMLDocument и HTMLElement.
- Понятие событийного программирования.
- Обработчики и слушатели событий.
- Подключение обработчиков с помощью addEventListener().
- Свойства и методы класса Event.
- Распространение событий вверх (bubbling) и вниз (capturing).
- Остановка распространения.
- События окна.
- События мыши и клавиатуры, специальные свойства событий.
- События формы.
- Стандарт CSS, основные свойства CSS.
- Общие стили и стили отдельных элементов.
- Каскадирование стилей.
- CSS-селекторы.
- Изменение CSS с помощью JavaScript.
- Отступы: margin, padding, border.
- Управление видимостью элементов: visibility и display.
- Позиционирование элементов: absolute, fixed, relative, установка top и left.
- Единицы измерения px, pt и другие.
- Переполнение элемента и управление через свойство overflow.
- Управление слоями документа: свойство zIndex.
- Анимация, перемещение элементов.
- Работа с классами, установка className.
- Работа с прозрачностью и переходами (transition).
- Метод querySelectorAll().
- Причины использования модулей.
- Экспорт из модуля.
- Импорт из модуля.
- Реэкспорт.
- Работа с NPM, файл package.json.
- Папка node_modules, загрузка пакетов с помощью NPM.
- Глобальная и локальная установка пакетов.
- Применение webpack для сборки проекта.
- Загрузчики CSS и TypeScript.
- Конфигурация webpack.config.js.
- Создание бандла, сжатие.
- Плагины webpack.
- Применение старых систем модульности – CommonJS и AMD.
- Использование CommonsChunkPlugin, несколько точек входа.
- Горячая замена модулей HMR.
- Прототипное наследование, ссылка proto.
- Прототип объекта.
- Использование instanceof.
- Ключевое слово class, создание классов.
- Ключевое слово super.
- Применение метода Object.assign().
- Применение метода Object.defineProperty().
- Геттеры и сеттеры.
- Spread-оператор для работы с объектами и массивами.
- Деструктурирование массива и объекта.
- Функции как переменные.
- Массив arguments.
- Класс Function, методы call() и apply().
- Метод bind(), установка this и части параметров с помощью bind.
- Замыкания в JavaScript.
- Инкапсуляция значений с помощью замыканий.
- Создание функции через конструктор Function: конструирование строки.
- Стрелочные функции, примеры их применения.
- Функциональная манипуляция массивом: find, findIndex, filter.
- Примеры использования map/filter/reduce для обработки данных в массиве.
- Понятие иммутабельности, ее преимущества.
- Мутабельные и иммутабельные методы изменения объектов и массивов.
- Понятие и преимущества Virtual DOM.
- Тестирование иммутабельных функций, применение Jest.
- Мемоизация, ее преимущества.
- Основные ошибки и рекомендации при использовании функционального программирования.
- Паттерн MVC, создание пользовательского интерфейса.
- Обзор основных библиотек для разработки интерфейса: Angular, React, Vue.
- Понятие и необходимость асинхронности.
- Работа с setTimeout, setInterval, clearTimeout.
- Функции обратного вызова (коллбэки).
- Потеря this при работе с функцией обратного вызова. Варианты решения (использование bind, стрелочных функций и др.).
- Понятие промисов, возвращение Promise из асинхронной функции.
- Метод Promise.all(), его применение.
- Синтаксис async/await, варианты применения, ограничения.
- Обработка внештатных ситуаций: Promise reject, обработка исключений при асинхронных вызовах.
- Протокол HTTP.
- Заголовки и методы HTTP (GET, POST, PUT, DELETE, другие), передача данных.
- HTTP-серверы (обзор).
- Коды ответа HTTP-сервера.
- Использование форм для отправки данных.
- Передача данных на сервер с помощью AJAX.
- Архитектура REST: преимущества и особенности.
- Реализация CRUD (операций Create/Read/Update/Delete) при работе с REST.
- Применение функции fetch() для получения и отправки данных.
- Документирование REST-сервисов с помощью Swagger.
- Понятие HATEOAS, применение.
- Сравнение высокоуровневой библиотеки Axios и применения низкоуровневого fetch().
- GET- и POST-запросы в Axios.
- Применение async/await с Axios.
- Обработка ошибок при использовании Axios.
- Отмена запроса с помощью Axios.
- Протокол WebSocket.
- Примеры использования WebSocket, сравнение с HTTP.
- HTML-анимация.