Разработка на JavaScript

Курс посвящен современному JavaScript (EcmaScript 2015+), использованию JS для работы в браузере (события, манипуляция HTML и CSS), работе с модулями JS (NPM, Webpack), работе с сервером (HTTP, REST, AJAX, Axios, WebSocket). Курс является основой для изучения веб-фреймворков Angular и React.
Курс: WEB-007
Длительность: 40 ч.

Описание

Курс посвящен современному JavaScript (EcmaScript 2015+), использованию JS для работы в браузере (события, манипуляция HTML и CSS), работе с модулями JS (NPM, Webpack), работе с сервером (HTTP, REST, AJAX, Axios, WebSocket). Курс является основой для изучения веб-фреймворков Angular и React. Делается упор на применение ООП, работу с JSON, функциональное программирование. Детально изучается работа с классами, объектами, массивами, датами, иммутабельность и асинхронность.

Разбираемые темы

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

Цели

После прохождения курса слушатели будут хорошо разбираться в возможностях языка JavaScript, получат основу для дальнейшего использования веб-фреймворков, таких как React или Angular. Слушателями будет подробно изучена структура и синтаксис языка, его объектная модель. Подробно рассматривается DOM модель HTML документа, дается введение в CSS, изучается техника управления DOM и CSS c помощью JavaScript. Изучаются модели обработки событий. Изучаются вопросы создания форм. Рассматривается технология JSON и технология Ajax, асинхронность и работа с сервером.

Целевая аудитория

Веб-разработчики.

Предварительная подготовка

Слушатели знакомы с HTML и CSS, желателен опыт программирования на каком-либо языке с С-подобным синтаксисом (C, C++, Java, C#).
После окончания курса выдаётся сертификат на бланке Luxoft Training
Тренер в Москва
Сонькин Владимир Эксперт в области разработки ПО: Java и Web-технологии
Владимир имеет опыт в области разработки ПО уровня Enterprise для крупнейших зарубежных компаний с использованием технологии Java с 2000 г.

В компании Luxoft Владимир работает с 2006 г. За это время поучаствовал в нескольких проектах для крупной американской сельскохозяйственной компании и крупнейшего швейцарского банка. Интересуется технологиями создания масштабируемых, эргономичных web-интерфейсов, а также технологиями повышения производительности труда разработчиков.

Специализируется на использовании JavaScript и Java для создания мощных и современных web-приложений, создании современных эргономичных web-интерфейсов с низким временем отклика.

Профессиональный опыт

2006–2012 – Luxoft, ведущий разработчик, участие в проектах для крупного банка (разработка системы биржевой торговли; разработка системы развертывания ПО на серверах банка); участие в проекте для американской агропромышленной компании (разработка логистической системы учета и транспортировки сельхозпродукции).
2005–2006 – ITCI, ведущий разработчик, разработка системы управления процессом разработки ПО.
2002–2004 – Институт возрастной физиологии РАО, руководитель проекта IT-поддержки систем всероссийского мониторинга школьников, разработка систем сбора и анализа данных.

Образование

1995–2000 – МГУ им. М.Ю. Ломоносова, факультет вычислительной математики и кибернетики, специальность "Прикладная математика".
Данный курс запланирован в городах: Москва
09.09.2019 - 13.09.2019
Время: 10:00-18:00
Локация: Москва
Длительность: 40 ч.
Тренер
Сонькин Владимир
Эксперт в области разработки ПО: Java и Web-технологии
36 500 1

09.09.2019

Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
Москва 36 500 1
Санкт-Петербург 32 850 1
Омск 27 380 1
Киев 8 700 грн.
Одесса 7 800 грн.
Днепр 7 800 грн.
Отзывы:
Живолович
Тренинг превзошел ожидания. Особенно хочется отметить широчайший кругозор тренера - Николая Смирнова.
Участник тренинга
Я очень довольна тренингом, наполнением практическими заданиями. Мне очень понравилось что практически не было сухого зачитывания слайдов с экрана, все сразу разъяснялось на примерах.
Участник тренинга
Весь курс оказался полезен. Это первое знакомство с языком. Были как самые базовые вещи, так и затронули библиотеки, упрощающие разработку в разы.

Примечание:

Материалы курса представлены на английском языке.

Записаться на курс

Выбрать дату
Если Вам не подходят дата и место проведения тренинга, Вы можете оставить заявку на участие в нем в любом из городов, где представлены филиалы Luxoft Training. Для этого выберите вариант "Открытая дата" и укажите желаемое место проведения курса.
Желаемое место проведения курса
Вы можете оставить заявку на корпоративное обучение сотрудников Вашей компании в любом городе России или Украины, выбрав вариант "Другой город"
Фамилия *

Имя *

Отчество

Контактный E-mail *

Компания *

Телефон *

Город *

Комментарий
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, управлению проектами, тестированию ПО, архитектуре ПО. Luxoft Training – единственный учебный центр в России, авторизованный IIBA. Действует скидка 10% на обучение физических лиц.
   Подпишись на ежемесячный DigestLT
Успешная форма подписки.
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.