Знакомство с JavaScript
Эта книга научит вас основам программирования и JavaScript. Независимо от того, опытный вы программист или нет, книга предназначена для всех, кто хочет изучить язык программирования JavaScript.
JavaScript (JS для краткости) является языком программирования, который позволяет веб-страницам отвечать на действия пользователя дальше базового уровня. Он был создан в 1995 году и сегодня является одним из самых известных и популярных языков программирования.
Данное руководство распространяется по лицензии Apache License 2.0. Вы можете использовать его для любых целей, свободно распространять, продавать, изменять и распространять изменённые копии. При этом вы должны:
- распространять под этой же лицензией;
- снабдить все модифицированные документы явным уведомлением, что вы их изменили;
- сохранить в работе все авторские права, патенты, торговые марки и т. д.
JavaScript. Язык программирования, который поможет войти в IT

IT – это огромный мир, в котором есть множество инструментов для познания и развития. Но в самом начале сложно понять, какой выбрать путь и как это сделать. Количество имеющихся вопросов пугает и возникают сомнения – смогу ли я вообще стать полноправным жителем этого мира?
Чтобы развеять ваши страхи, мы решили рассказать об одном из самых популярных языков программирования. Этот язык прост, вы можете приступить к его изучению, не имея вообще никаких навыков программирования. Но он откроет перед вами возможность построить карьеру в сфере IT и заниматься делом, которое приносит удовольствие и высокий доход.
Речь идет о JavaScript.

JavaScript – это объектно-ориентированный язык программирования, который чаще всего используется для придания интерактивности веб-страницам. Однако в последние годы он так активно развивается, что, благодаря фреймворкам, стал уже универсальным. Сегодня с помощью JavaScript можно создавать не только «живые» сайты, где элементы реагируют на действия пользователя, но и анимированную 3D графику, игры, полномасштабные приложения с базами данных и многое другое.
Изучение JavaScript
Как мы уже отметили, это один из самых простых языков для новичков. Чтобы освоить его не нужно несколько лет подряд учиться в ВУЗе и изучать всю теорию программирования. Но несмотря на легкость в освоении, JavaScript содержит в себе такие фундаментальные вещи, как алгоритмы, структуры данных, объекто-ориентированность и другое. Знакомство с этим языком программирования даст базовое представление и о С++, C#, Java, PHP.
Так, на коучинге WAYUP «JavaScript: новый уровень» вы за 4 месяца пройдете путь от основ до профессионального владения языком. Изучите не только принципы работы с JS, но и освоите другие инструменты frontend-разработчика.

Что еще упрощает процесс обучения, так это огромное сформировавшееся комьюнити разработчиков от новичков до профи, которым вы задаете вопросы, получаете ответы и обсуждаете волнующие темы. Одним из мест, где можно общаться с коллегами и обращаться к ним за помощью, является Stack Overflow. Это своего рода социальная сеть для программистов. Подробнее о том, как работает Stack Overflow, вы можете найти в этой статье.
Прост во всем
Еще один важный момент, упрощающий процесс ознакомления с JavaScript, заключается в том, что для работы с ним не нужно дополнительно ничего скачивать и устанавливать. Все, что вам потребуется – это браузер и текстовый редактор для создания HTML-документов.
Увидеть результаты своего творчества вы можете сразу, при просмотре текстового документа браузером. Для всех других языков программирования нужна специальная подготовка и компиляция кода для запуска.
Базовый инструмент frontend-разработчика
Одним из очевидных путей вхождения в сферу IT является frontend-разработка. Чтобы составить конкуренцию другим желающим вы должны знать, что владение JavaScript также важно и обязательно, как знание HTML и CSS. Сегодня редко встречаются вакансии фронтендов, где отсутствует требование знаний этого языка программирования.
Где еще пригодится JavaScript
Frontend-разработка – не единственное направление, в котором может реализовать себя человек, обладающий знаниями и навыками работы с JavaScript.
JS не ограничивает себя, продолжает развиваться и оставаться универсальным языком программирования. Так почему бы вам не использовать это преимущество?
С помощью инструментов, разработанных в дополнение имеющихся функций, вы можете:
— создавать нативные и десктопные приложения (с использованием фреймворков React.js, Vue.js, Angular);
— заниматься разработкой серверной части, так называемый backend (с использованием Node.js);
— разрабатывать программное обеспечение абсолютно для любых технических устройств, будь то чайник или космический беспилотный корабль;
— создавать простые и сложные браузерные игры любых жанров и так далее.
Лучшие фреймворки и библиотеки JavaScript
- Vue.js – это один из самых популярных, по статистике GitHub, фреймворков JS, который упрощает жизнь веб-разработчикам. Предназначен он для создания пользовательских интерфейсов. Кроме того, Vue.js может служить для создания продвинутых одностраничных приложений.
- Angular – фреймворк, используемый для создания одностраничных приложений и их поддержания. Работают с ним не только разработчики, но и дизайнеры, так как эта технология позволяет задавать дизайн приложения.
- React.js используется для разработки пользовательских интерфейсов, одностраничных и мобильных приложений.
- jQuery – это библиотека JavaScript, которая содержит в себе готовые функции, а соответственно, упрощает процесс разработки. Познакомиться подробнее с jQuery и понять основные принципы работы с ним вам поможет видео Андрея Гаврилова 10 приемов Javascript/jQuery для верстальщиков.
Перспективы развития
Едва ли есть язык программирования, способный составить конкуренцию JavaScript и пошатнуть его уверенную лидирующую позицию в рейтинге самых популярных языков. Его можно встретить и применять повсеместно, во всех видах браузеров и операционных систем.
Соответственно, зачем придумывать что-то другое, когда можно просто совершенствовать имеющееся?
Даже несмотря на популярность этого языка программирования и большое комьюнити, спрос на рынке труда превышает предложение JavaScript-разработчиков. Это значит только одно. Если вы все еще думаете, стоит изучать JS или нет – ответ перед вами.
JavaScript – самый подходящий язык для новичков в программировании. Познакомьтесь с программой обучения от WAYUP, где вы освоите базовые принципы работы, изучите основные библиотеки и фреймворки. В результате полученные знания позволят вам развиваться безгранично, потому что для JavaScript-разработчиков нет потолка.
Синтаксис JavaScript

С 1995 года JavaScript прошел длинный путь от скромного компонента браузера Netscape до современных высокопроизводительных JIT-интерпретаторов. Казалось бы, всего лет пять назад разработчики были ошеломлены появлением Ajax, а уже сейчас сложные JavaScript-приложения достигли объемов в сотни и тысячи строк кода.
В прошлом году появилось новое поколение JavaScript-приложений, ничем не отличающихся от приложений рабочего стола, — невероятный прогресс веб-технологий. Ушли в прошлое медленно выполняемые запросы страниц при каждом взаимодействии пользователя с приложением. Движки JavaScript стали настолько мощными, что появилась возможность сохранять состояние на стороне клиента, что существенно ускорило реакцию приложения и улучшило качество его работы.
Если вы знаете другие языки программирования, вам может оказаться полезна информация, что JavaScript является высокоуровневым, динамическим, нетипизированным и интерпретируемым языком программирования, который хорошо подходит для программирования в объектно-ориентированном и функциональном стилях. Свой синтаксис JavaScript унаследовал из языка Java, свои первоклассные функции – из языка Scheme, а механизм наследования на основе прототипов – из языка Self. Но вам не требуется знать все эти языки или быть знакомыми с их терминологией для изучения JavaScript.
В этой статье мы рассмотрим базовые лексические структуры языка.
Символы
При написании программ на JavaScript используется набор символов Юникода. Юникод является надмножеством кодировок ASCII и Latin-1 и поддерживает практически все письменные языки, имеющиеся на планете. Стандарт ECMAScript 3 требует, чтобы реализации JavaScript обеспечивали поддержку стандарта Юникода версии 2.1 или выше, а стандарт ECMAScript 5 требует, чтобы реализации обеспечивали поддержку стандарта Юникода версии 3 или выше.
Чувствительность к регистру
JavaScript – это язык, чувствительный к регистру символов. Это значит, что ключевые слова, имена переменных и функций и любые другие идентификаторы языка должны всегда содержать одинаковые наборы прописных и строчных букв.
Например, ключевое слово while должно набираться как «while», а не «While » или «WHILE». Аналогично myvar, Myvar, MyVar и MYVAR – это имена четырех разных переменных. Заметим, однако, что язык разметки HTML (в отличие от XHTML) не чувствителен к регистру. Так как HTML и клиентский JavaScript тесно связаны, это различие может привести к путанице. Многие JavaScript-объекты и их свойства имеют те же имена, что и теги и атрибуты языка HTML, которые они обозначают. Однако если в HTML эти теги и атрибуты могут набираться в любом регистре, то в JavaScript они обычно должны набираться строчными буквами.
Например, атрибут onclick обработчика события чаще всего задается в HTML как onClick, однако в JavaScript-коде (или в XHTML-документе) он должен быть обозначен как onclick.
Пробелы, переводы строк и символы управления форматом
JavaScript игнорирует пробелы, которые могут присутствовать между лексемами в программе. Кроме того, JavaScript также по большей части игнорирует символы перевода строки. Поэтому пробелы и символы перевода строки могут без ограничений использоваться в исходных текстах программ для форматирования и придания им удобочитаемого внешнего вида.
Помимо обычного символа пробела ( \u0020 ) JavaScript дополнительно распознает как пробельные следующие символы: табуляция ( \u0009 ), вертикальная табуляция ( \u000B ), перевод формата ( \u000C ), неразрывный пробел ( \u00A0 ), маркер порядка следования байтов ( \uFEFF ), а также все символы Юникода, относящиеся к категории Zs.
Следующие символы распознаются интерпретаторами JavaScript как символы конца строки: перевод строки ( \u000A ), возврат каретки ( \u000D ), разделитель строк ( \u2028 ) и разделитель абзацев ( \u2029 ). Последовательность из символов возврата каретки и перевода строки интерпретируется как единственный символ завершения строки.
Символы Юникода, управляющие форматом (категория Cf), такие как RIGHT-TO-LEFT MARK ( \u200F ) и LEFT-TO-RIGHT MARK ( \u200E ), управляют визуальным представлением текста, в котором они присутствуют. Они имеют большое значение для корректного отображения текста на некоторых языках и являются допустимыми в комментариях JavaScript, строковых литералах и в литералах регулярных выражений, но не в идентификаторах (таких как имена переменных), определяемых в программах JavaScript. Исключение составляют ZERO WIDTH JOINER ( \u200D ) и ZERO WIDTH NON-JOINER ( \u200C ), которые можно использовать в идентификаторах при условии, что они не являются первыми символами идентификаторов.
Полную таблицу символов Unicode вы можете посмотреть на сайте Unicode Table.
Необязательные точки с запятой
Как и в других языках программирования, для отделения инструкций друг от друга в языке JavaScript используется точка с запятой (;). Использование точек с запятой имеет важное значение для ясного выражения намерений программиста: без этого разделителя по ошибке можно принять конец одной инструкции за начало следующей и наоборот.
Обычно в JavaScript точку с запятой между инструкциями можно не ставить, если они находятся в разных строках. (Точку с запятой можно также опустить в конце программы или если следующей лексемой в программе является закрывающая фигурная скобка >.) Многие программисты на JavaScript используют точки с запятой для явного обозначения концов инструкций, даже если в этом нет необходимости.
Взгляните на следующий фрагмент. Поскольку две инструкции находятся в разных строках, первую точку с запятой можно опустить:
a = 3 b = 5;
Однако если эти инструкции записать, как показано ниже, первая точка с запятой становится обязательной:
a = 3; b = 5;
Комментарии
JavaScript поддерживает два способа оформления комментариев. Любой текст между символами // и концом строки рассматривается как комментарий и игнорируется JavaScript. Любой текст между символами /* и */ также рассматривается как комментарий. Эти комментарии могут состоять из нескольких строк, но не могут быть вложенными. Следующие строки представляют собой корректные JavaScript-комментарии:
// Это однострочный комментарий. /* Это тоже комментарий */ // а это другой комментарий. /* Это еще один комментарий. Он располагается в нескольких строках. */
Идентификаторы и зарезервированные слова
Идентификатор — это просто имя. В JavaScript идентификаторы выступают в качестве имен переменных и функций, а также меток некоторых циклов. Идентификаторы в JavaScript должны начинаться с буквы, с символа подчеркивания (_) или знака доллара ($) . Далее могут следовать любые буквы, цифры, символы подчеркивания или знаки доллара. (Цифра не может быть первым символом, так как тогда интерпретатору трудно будет отличать идентификаторы от чисел.) Примеры допустимых идентификаторов:
i my_variable_name v13 _myvar $str
Для совместимости и простоты редактирования для составления идентификаторов обычно используются только символы ASCII и цифры. Однако JavaScript допускает возможность использования в идентификаторах букв и цифр из полного набора символов Юникода. Это позволяет программистам давать переменным имена на своих родных языках и использовать в них математические символы:
var имя = 'Александр'; var Π = 3.14;
JavaScript резервирует ряд идентификаторов, которые играют роль ключевых слов самого языка. Эти ключевые слова не могут служить идентификаторами в программах. JavaScript также резервирует некоторые ключевые слова, которые в настоящее время не являются частью языка, но которые могут войти в его состав в будущих версиях. В приведенной таблице перечислены все ключевые слова по категориям:
| Категория | Ключевые слова |
|---|---|
| Базовые идентификаторы | break delete function return typeof case do if switch var catch else in this void continue false instanceof throw while debugger finally new true with default for null try |
| Новые ключевые слова в стандарте EcmaScript 5 | class const enum export extends import super |
| Зарезервированные слова в строгом режиме (в обычном они доступны) | implements let private public yield interface package protected static arguments eval |
| Ключевые слова языка Java (зарезервированы в EcmaScript 3) | abstract double goto native static boolean enum implements package super byte export import private synchronized char extends int protected throws class final interface public transient const float long short volatile |
| Предопределенные глобальные переменные и функции | arguments encodeURI Infinity Number RegExp Array encodeURIComponent isFinite Object String Boolean Error isNaN parseFloat SyntaxError Date eval JSON parseInt TypeError decodeURI EvalError Math RangeError undefined decodeURIComponent Function NaN ReferenceError URIError |
Имейте в виду, что конкретные реализации JavaScript могут содержать свои предопределенные глобальные переменные и функции. Кроме того, каждая конкретная платформа JavaScript (клиентская, серверная и прочие) может иметь свой собственный список глобальных свойств.
Основы JavaScript. Урок 1. Введение в JavaScript. Что такое JavaScript.
JavaScript — сценарный язык программирования, предоставляющий доступ к объектам приложений. Наиболее популярен среди web-разработчиков, т. к. позволяет добавить html-странице интерактивности (взаимодействия с пользователем).
В данном уроке мы затронем следующие темы:
- История языка;
- Каковы тенденции его развития;
- Что он собой представляет;
- Чем отличается от Java;
- Возможности и ограничения JavaScript;
- Взаимодействие JavaScript с браузерами;
- Ваш первый сценарий на JavaScript.
История развития JavaScript: от предпосылок до тенденций
1992 г. — первые отсылки к JavaScript. Именно тогда перед компанией Nombas была поставлена задача: разработать встраиваемый скриптовый язык, который впоследствии смог бы стать достойной альтернативой макросам. Для этого он должен был поддерживать стандартные операторы и функции «Си», и при этом перевести управление памятью в автоматический режим. Получившемуся продукту было дано название «Cmm» (Си минус минус), на смену которому (в виду его негативного звучания) довольно быстро пришло «ScriptEase».
Апрель 1995 г. – начата работа над концепцией и внедрением в фирменный браузер Netscape языка, который давал бы возможность программировать как со стороны сервера, так и со стороны клиента, мог бы «склеить» составляющие части web-ресурса и был бы доступен даже для разработчиков, обладающих достаточно посредственной квалификацией. Первоначальное название «Mocha» впоследствии было заменено на «LiveScript».
Ноябрь 1995 г. – на основе «ScriptEase» создается внедряемый в web-страницы проприетарный (для коммерческого использования) продукт «CEnvil». Страницы, доступные для редактирования при помощи скриптового языка, стали называться «Espresso Pages» и демонстрировали последствия внедрения в браузер языка «ScriptEase».
Декабрь 1995 г. – для повышения интереса к проекту принимается решение переименовать «LiveScript» в «JavaScript», созвучное с весьма популярным на тот момент языком «Java».
Июль 1996 г. – «Microsoft» анонсирует (а затем и выпускает) аналог «JavaScript» – «JScript»
Декабрь 1996 г. — ассоциация ECMA (по инициативе Netscape) проводит стандартизацию языка JavaScript. Стандартизированная версия описывается при помощи стандарта «ECMA-262» и получает название «ECMAScript».
Последующие изменения JavaScript будет целесообразно представить в виде таблицы:
Дата
Версия JavaScript
Ключевые изменения
