Web-программирование на JavaScript (часть 1)

Введение

В мире программирования существует зоопарк разнообразных инструментов в виде языков, библиотек и фреймворков. Каждый из них нацелен на решение специфического спектра задач. Было бы странно писать операционную систему на Python или Telegram чат–бота на C++.

Гостем этой статьи является скриптовый язык программирования JavaScript. Возможно, кто–то из вас его путал с Java, но никакого прямого отношения друг к другу они не имеют. Благодаря JS на сайтах вы видите плавные анимации, эффекты и динамическое обновление данных страницы без её явного обновления. По рейтингу популярности языков программирования (индекс TIOBE), JS уверенно входит в топ 10 около 20 лет!

На период первого полугодия 2024 года медианная заработная плата программистов на JavaScript составляет 152к ежемесячно. Начинающие (Junior) специалисты получают от 50к рублей, опытные (Middle) – от 90к, а старшие (Senior) от 150к. Конечно, ЗП зависит от компании и старшему разработчику могут платить и 400к в месяц. Явных ограничений по доходу в IT – нет.

История

В далеком 1995 году самым популярным браузером был Netscape, принадлежащий компании Netscape Communications. Её основатель – Марк Андриссен, считал, что важно создать новый язык, “оживляющий” страницы браузера, делая их динамическими. Главным критерием была простота и задумывалось, что целевой аудиторией будут не профессиональные программисты, а обычные люди. За такую непростую задачу взялся Брендан Айк. Прототип необходимо было подготовить в кратчайшие сроки, поэтому не хватало времени продумать до мелочей техническую сторону. За несколько недель появился на свет Mocha и был внедрен в Netscape в 1995 году. Из маркетологических соображений язык переименовали в LiveScript, а позже и в JavaScript . Переломным моментом стала ECMA стандартизация языка в 1996 году, что позволило сторонним разработчиком вносить свои изменения и сделать язык таким, каким мы его знаем сегодня.

Сферы применения

Язык как создавался преимущественно для веб–разработки, так до сих пор и лидирует в этом направлении. Никто не запрещает его использовать для создания игр и мобильных приложений, обработки данных, написании алгоритмов Machine Learning и т.д. Но стоит учитывать что с точки зрения профессионалов, для этих сфер придуманы более удачные технологии.

Ключевые особенности

Упомянем важные особенности. JavaScript – интерпретируемый язык. Его код переводится в машинные инструкции построчно в момент работы программы. В компилируемых языках код меняется в машинный до запуска. Из–за этой особенности JS, разработчики быстро могут тестировать и изменять код, не ожидая по полчаса, когда проект скомпилируется. Есть недостаток – ошибки возникнут только в процессе выполнения, что затрудняет отладку. Ещё, JavaScript обладает динамической типизацией. Это позволяет переменным не иметь фиксированных типов данных, то есть они могут изменять свой тип в процессе выполнения программы. Присваивание, например, числа переменной, а затем строки, не вызывает никаких ошибок. Эта интересная особенность будет рассмотрена в следующем разделе.

Основы JavaScript

Перед тем как приступить к серьёзному изучению языка, надо разобрать следующие понятия: синтаксис, переменная, примитивные и ссылочные типы данных, операторы.

Синтаксис

Синтаксис JavaScript включает в себя набор правил и конструкций, которые задают “тон” языка. Он включает в себя использование переменных, операторов, функций, условий и циклов, а также структуру, которая позволяет координировать взаимодействие между различными элементами кода. JavaScript использует синтаксис, аналогичный языкам C и Java, что делает его знакомым для многих программистов, но с рядом особенностей, которые важно понимать. С тонкостями написания мы будем ознакомляться по ходу материала.

Одним из основных элементов синтаксиса JavaScript является использование точек с запятой для завершения операторов. Они не обязательны, но рекомендуется их использовать. В JavaScript также существует предпочтительный стиль именования, называемый camelCase, который подразумевает написание многословных идентификаторов, где первое слово начинается со строчной буквы, а каждое последующее – с заглавной.

В процессе изучения синтаксиса JavaScript новички часто сталкиваются с такими концепциями, как область видимости переменных, типизация (динамическая типизация и автоматическое преобразование типов), обработка ошибок через try...catch и многое другое. Освоение основ синтаксиса – это переломный этап для начинающего разработчика, так как именно от него зависит, насколько эффективно пишется, читается и поддерживается код.

Переменные

Переменная – специальная именованная “коробочка”, хранящая данные. Если более научно, то это область памяти компьютера, выделенная под некое значение и имеющее идентифицирующее имя.

Переменная поддерживает операции объявления, присваивания значения и её чтение. Объявление происходит с помощью трех языковых конструкций (операторов): let, var и const. Операторы let и var выполняют почти одинаковую функцию, но всегда используйте только let, так как var считается устаревшим и в современных программах строго не рекомендуется использовать из–за особенностей области видимости переменных. Данные конструкция позволяют перезаписывать значения сколь угодно раз.

Константным переменным (const) присваивается только одно значение. Дальше оно доступно для чтения, но не для перезаписи.

Давайте посмотрим на код. Обязательно переписывайте все примеры руками, если вы только приступили к изучению! Воспользуйтесь средой разработки Visual Studio Code (лучший вариант), консолью разработчика в браузере или другой удобной вам программой. Любители острых ощущений работают исключительно в блокноте :)

Переменные “живут” в оперативной памяти на время выполнения кода или его частей. Этот аспект и области видимости будут детальнее описаны в разделе о функциях.

Небольшое примечание: переменным нельзя присваивать имена операторов, ключевых слов и других зарезервированных слов языка. Например, запрещено называть переменную let, const, if, for или function, так как это зарезервированные слова в JavaScript.

продолжение следует....

Кешбэк 13% Запись на обучение вверх