ЗАО "БелХард Групп"
Центр обучающих технологий
Михалькевич Александр Викторович
JavaScript
практика современной фронтенд разработки
методическое пособие
Минск 2015
УДК 004.415.53
ББК 32.973.2-018.2я7
Об авторе:
Михалькевич Александр Викторович, программист. Я профессионально занимаюсь web-мастерингом с 2004 года. И постоянно, в той или иной степени сталкиваюсь с технологией JavaScript. Тем не менее, когда вышла вторая версия языка, и я принялся за углубленное его изучение я поразился его возможностям.
Первое, что меня поразило – это словочетание “серверный JavaScript”. Как это серверный? JavaScript всегда был клиентским. Если JavaScript стал серверным, тогда зачем серверные языки, такие как PHP, ASP, RUBY и другие?
Второе – это наличие в самом языке собственной базы данных. Какой еще язык программирования может этим похвастаться?
Третье – это возможность создавать web-приложения почти любой сложности, без подключения дополнительных технологий. Мы можем создать сайт на чистом JavaScript, без PHP и даже без CSS и HTML, и т.д.
JavaScript – это магия, с помощью которой можно создать приложение любой сложности.
А.В.Михалькевич
JavaScript. Основы современной фронтенд разработки.
А.В.Михалькевич, Закрытое акционерное общество «БелХард Групп» - Мн., 2015. – 236с.
ISBN
-
Данное учебное пособие является не просто введением в javaScript, а полноценным учебным курсом, в котором рассматриваются все основные аспекты javaScript. Включая платформу Node.js (серверный JavaScript), API HTML5 и библиотеку Angular.
Пособие рекомендовано к использованию слушателям курсов ЦОТ ЗАО "БелХард Групп".
УДК 004.415.53
ББК 32.973.2-018.2я7
© Михалькевич Александр Викторович2015
© Закрытое акционерное общество
ISBN «БелХард Групп», 2015
JavaScript
практика современной фронтенд разработки
JavaScript
API JavaScript
Node.js
Современный фронтенд
Angular
Содержание:
Введение…………………………………………………………………………...7
Глава I. JavaScript…………………………………………………..…………..10
1. Базовый синтаксис………………………………………………………....10 1.1 Тип данных...............................................................................................10 1.2 Автоматическая вставка точек с запятой……………………………..12 1.3 Область видимости переменных……………………………………....13 1.4 Особенности работы с числами и строками..........................................13 1.5 Переменные и литералы………………………………………………..14
1.6 Инструкции...............................................................................................14 1.7 Тернарный оператор ?:………………………………………………….17
1.8 Объекты.....................................................................................................17 1.9 Массивы………………………………………………………………....19
2. Функции……………………………………………………………………..23 2.1 Определение функции………………………………………………….23 2.2 Вызов функци как функции…………………………………………….24
2.3 Вызов функции как метода……………………………………………..25
2.4 Вызов функции как конструктора...........................................................26 2.5 Функции высшего порядка…………………………………………….26 2.6 Косвенный вызов, методы call() и apply()……………………………..27 2.7 Аргументы функций................................................................................29 2.8 Замыкания.................................................................................................30 2.9 Подъем переменных.................................................................................32 2.10 Немедленно-вызываемые функции-выражения……………………..33 2.11 Метод bind()...........................................................................................33 3. Объекты и прототипы....................................................................................35 3.1 Конструктор..............................................................................................35 3.2 Наследование…………………………………………………………...39 4. Тестирование JavaScript…………………………………………………….41
4.1 Модульное тестирование……………………………………………….41 4.2 QUnit……………………………………………………………………..42
Глава II. API JavaScript......................................................................................46
1. API видео и аудио …………………………………………………………..46
2. API холст…………………………………………………………………….55
3. API перетаскивания………………………………………………………....77
4. API форм…………………………………………………………………….83
5. API геолокации……………………………………………………………...85 6. API web-хранилища………………………………………………………...91
Глава III. Node.js………………………………………………………………..97
1. Цикл чтения, вычисления и вывода на экран REPL (запуск Node-приложений из режима командной консоли)......................................................98
2. Ядро Node.....................................................................................................101 3. Node.js и PHPStorm………………………………………………………..118
4. Отладка……………………………………………………………………..123
5. Обработка ошибок........................................................................................129 6. Внешние модули…………………………………………………………...130
7. Express……………………………………………………………………...132
8. Хранилище данных MongoDB....................................................................141 9. MySQL и Node.js..........................................................................................148 10. Создание приложения на Express………………………………………...149
11. Регистрация и авторизация..........................................................................155 12. Загрузка файлов............................................................................................164 13. Web-сокеты, чат на Socket.IO……………………………………………..165
Глава IV. Современный фронтенд..................................................................170
1. Резиновая и фиксированная верстка, традиционная блочная и табличная..............................................................................................................170
2. Гибкая блочная верстка...................................................................................172 3. Адаптивная верстка………………………………………………………….173
4. JSON…………………………………………………………………………..174
5. Селекторы…………………………………………………………………….174
6. jQuery (библиотека запросов)……………………………………………….178
7. Объектные литералы.......................................................................................181 8. Архитектурный шаблон MVVM....................................................................182 9. Backbone……………………………………………………………………..182 10. CoffeeScript.....................................................................................................183 11. LESS………………………………………………………………………...185 12. Системы сборки FrontEnd-а……………………………………………….188
13. Bootstrap 3, API Bootstrap…………………………………………………..192
14. Браузерные web-консоли. FireBug………………………………………...210
15. Schema.org…………………………………………………………………..213
Глава V. Angular.JS...........................................................................................218
1. Контроллер.......................................................................................................218 2. Модель..............................................................................................................219 3. Другие диррективы..........................................................................................220 4. Покупательская корзина с удалением товаров…………………………….222 5. Данные……………………………………………………………………….222 6. Прослушиватель изменений в функциях, $scope-функция……………….223 7. Калькулятор корзины со скидкой…………………………………………...224 8. Продвинутые формы.......................................................................................224 9. Директивы…………………………………………………………………....226 10. Подключение плагинов jQuery.....................................................................226 11. Контроллер в качестве модуля…………………………………………….228
12. Маршрутизация запросов………………………………………………….229
Приложение…………………………………………………………………....232
1. Стандартные объекты JavaScript………………………………………….232
2. Глобальные методы………………………………………………………..232
3. Синтаксические конструкции…………………………………………….233
Список используемой литературы.....................................................................235
Введение
Почему JavaScript?
На сегодняшний день JavaScript – самый популярный язык в мире. Независимо от серверной платформы приложения, более 90% web-приложений в той или иной степени используют javaScript.
На сегодняшний день JavaScript является единственной технологией, на которой можно создать web-проект любой сложности без использования других технологий.
Но такого языка, или технологии, которые были бы однозначно признаны рынком как лучшее решение для web-разработчиков. У каждого варианта есть свои достоинства и недостатки. Однако можно определить самый распространенный язык. И этим языком снова оказывается JavaScript.
Более 90% сайтов и web-проектов в той или иной степени используют JavaScript. От выпадающих элементов меню и до управления базой данных; от Ajax-запросов (вызов серверных скриптов без перезагрузки страницы) и до Node.js (серверный JavaScript). Вот область применения самого популярного на сегодняшний день языка.
Современный JavaScript уже вышел за рамки клиентского (браузерного) языка. С появлением версии 2.0, JavaScript научился работать на стороне сервера и составил серьезную конкуренцию такому состоявшемуся языку, как PHP, который пока еще держит от 80 до 88% (по разным источникам) рынка серверных платформ, но с выходом окончательного релиза Node.js ситуация может измениться в пользу серверного JavaScript.
Сам язык изобрел Brendan Eich (компания Netscape) и назвал его JavaScript. Впервые новый язык был использован в браузере Netscape Navigator 2.0. После этого он стал использоваться во всех последующих браузерах от Netscape и во всех браузерах от Microsoft, начиная с Internet Explorer 3.0. Компания Microsoft по-своему развила идею и дала своей версии языка более короткое название: JScript.
Далее, чтобы обеспечить совместимость версий языка независимых разработчиков, Генеральной Ассамблеей ECMA был создан стандарт. Этот стандарт основан на нескольких базовых технологиях, наиболее известными из которых являются упомянутые уже JavaScript (Netscape) и JScript (Microsoft).
Развитие этого Стандарта началось в ноябре 1996. Первое издание Стандарта ECMA было принято Генеральнаой Ассамблеей ECMA в июне 1997.
Данный ECMA Стандарт был представлен международной комиссии по стандартам ISO/IEC JTC 1 для принятия, и одобрен как международный эталон ISO/IEC 16262 в апреле 1998. Генеральная Ассамблея ECMA в июне 1998 одобрила второе издание ECMA-262, с сохранением всех требований ISO/IEC 16262.
В настоящее время используется третье издание ECMA-262 которое включает мощные регулярные выражения, лучшую обработку строк, новые инструкции контроля и управления, перехват и обработку исключительных ситуаций, более жесткое определение ошибок, форматирование для числового вывода и незначительные изменения в ожидании ввода средств многоязычности и будущего развития языка.
С появлением HTML5 расширились и возможности JavaScript. Наконец-то разработчики языка поняли необходимость обработки видео, и появилась API video и audio. С появлением API холста (canvas) отпала необходимость для двухмерной графики или анимации использовать флэш. Появились API перетаскивания, геолокации, индексированных баз данных, работы с файлами, истории, автономной работы, управления рабочими процессами и коммуникационный API. JavaScript даже обзавелся своей базой данных – MongoDB, данные хранятся в JSON-формате.
JavaScript, «самостоятельный» язык программирования, ведь прав на него нет ни у одной компании или группы разработчиков. Тем не менее, само название «JavaScript», является сертифицированным торговым знаком, «подсуетилась» по этому поводу компания Oracle Corporation.
Широко используется данный язык программирования в AJAX, суть его применения заключается в том, что с его помощью, во время работы со страницей веб браузера, она может не перезагружаться полностью, что, естественно, экономит уйму времени; в то же время, интерфейс какого-либо приложения, становится гораздо быстрее. Экономия времени, насколько известно, всегда является приоритетной чертой, при использовании любых приложений.
Так же свою популярность JavaScript заслужил в работе с таким механизмом, как Comet, с помощью которого сервер отправляет какие-либо данные браузера без лишних на то запросов от браузера. Функционал этого механизма был бы неосуществимым без JavaScript.
И это лишь немногие возможности этого легкого и функционального языка программирования, который был создан людьми, и для людей. Такова и была изначальная задумка его разработчиков, которая, в итоге и стала основополагающей для роста популярности JavaScript.
Достоинства языка JavaScript - простота изучения его основ и внедрения. JavaScript использует самую обычную среду для разработки – его программы создаются в простых редакторах, таких, как «WordPad» или «Блокнот». Для файлов, созданных с использованием алгоритмов JavaScript, не требуется программа-компилятор, чтобы адаптировать их к языку машины, то есть переводить эти файлы на язык машинных кодов. Для просмотра и работы с программами, создаваемыми на JavaScript, подходит и используется обыкновенный Интернет-браузер.
Недостатки языка JavaScript заключаются в том, что разные браузеры могут по-разному интерпретировать код программы написанной на этом языке в составе html-документа, браузером пользователя также может блокироваться или приостанавливаться выполнение некоторых JS-скриптов, например, могут быть заблокированы всплывающие окна, тоже касается и поисковых систем (их роботов), которые не очень доверяют сайтам, на которых содержится большое количество JS-скриптов. Кроме того, JavaScript, естественно, уступает традиционным языкам программирования, таким, как Java, Delphi, Pascal, С, С++, которые, однако, используются в своей основе для создания локальных компьютерных приложений.
Изучение JavaScript - интересное и увлекательное занятие, которое позволяет развить и улучшить навыки программирования, а также создавать с его помощью уникальные законченные проекты. Требуется лишь время для того, чтобы освоить JavaScript, а также постоянная практика.
Желающим углубленно изучить JavaScript, можно порекомендовать курсы JavaScript Центра Обучающих Технологий Belhard. На курсах изучаются: базовый синтаксис, API языка, база данных MongoDB, клиентский JavaScript и серверный (Node.js), а также библиотеки современные js-библиотеки.
Поделитесь с Вашими друзьями: |