JavaScript был представлен в 1995 году как способ добавления программ на веб-страницы в браузере Netscape Navigator. С тех пор этот язык был принят всеми другими основными графическими веб-браузерами. Это сделало возможными современные веб-приложения — приложения, с которыми вы можете взаимодействовать напрямую, не перезагружая страницу для каждого действия. JavaScript также используется на более традиционных веб-сайтах для обеспечения различных форм интерактивности и хитрости.

JavaScript и Java в чем-то похожи, но в чем-то принципиально различаются. Язык JavaScript похож на Java, но не имеет статической типизации Java и строгой проверки типов. JavaScript следует большинству синтаксиса выражений Java, соглашениям об именах и основным конструкциям потока управления, поэтому он был переименован из LiveScript в JavaScript.

Важно отметить, что JavaScript не имеет почти ничего общего с языком программирования под названием Java. Подобное название было навеяно маркетинговыми соображениями, а не здравым смыслом.

Но по мере своего развития JavaScript стал полностью самостоятельным языком со своей спецификацией под названием ECMAScript, и теперь он вообще не имеет отношения к Java.

Сегодня JavaScript может выполняться не только в браузере, но и на сервере, или вообще на любом устройстве, на котором установлена ​​специальная программа под названием движок JavaScript.

Браузер имеет встроенный движок, иногда называемый «виртуальная машина JavaScript».

Разные двигатели имеют разные «кодовые имена». Например:

  • V8 — в Chrome, Opera и Edge.
  • SpiderMonkey — в Firefox.
  • …Есть и другие кодовые имена, такие как «Чакра» для IE, «JavaScriptCore», «Nitro» и «SquirrelFish» для Safari и т. д.

Начать работу с JavaScript очень просто: вам нужен только современный веб-браузер

Что может JavaScript?

Современный JavaScript — это «безопасный» язык программирования. Он не обеспечивает низкоуровневый доступ к памяти или процессору, поскольку изначально создавался для браузеров, которым он не требуется.

Возможности JavaScript сильно зависят от среды, в которой он работает. Например, Node.js поддерживает функции, которые позволяют JavaScript читать/записывать произвольные файлы, выполнять сетевые запросы и т. д.

В браузере JavaScript может делать все, что связано с манипулированием веб-страницей, взаимодействием с пользователем и веб-сервером.

Например, встроенный в браузер JavaScript может:

  • Добавьте новый HTML на страницу, измените существующий контент, измените стили.
  • Реагировать на действия пользователя, запускать на клики мыши, движения указателя, нажатия клавиш.
  • Отправляйте запросы по сети на удаленные серверы, загружайте и загружайте файлы.
  • Получайте и устанавливайте куки, задавайте вопросы посетителю, показывайте сообщения.
  • Запомните данные на стороне клиента («локальное хранилище»).

Возможности JavaScript в браузере ограничены для обеспечения безопасности пользователя. Цель состоит в том, чтобы предотвратить доступ злонамеренной веб-страницы к личной информации или причинение вреда данным пользователя.

Примеры таких ограничений включают:

  • JavaScript на веб-странице не может читать/записывать произвольные файлы на жестком диске, копировать их или запускать программы. Он не имеет прямого доступа к функциям ОС.

Современные браузеры позволяют ему работать с файлами, но доступ ограничен и предоставляется только в том случае, если пользователь совершает определенные действия, например, «кидает» файл в окно браузера или выбирает его через тег «input».

Существуют способы взаимодействия с камерой/микрофоном и другими устройствами, но они требуют явного разрешения пользователя.

  • Разные вкладки/окна вообще не знают друг о друге. Иногда это происходит, например, когда одно окно использует JavaScript для открытия другого. Но даже в этом случае JavaScript с одной страницы может не получить доступ к другой странице, если они приходят с разных сайтов (с другого домена, протокола или порта).

Это называется Политикой одного и того же происхождения. Чтобы обойти эту проблему, обе страницы должны согласиться на обмен данными и должны содержать специальный код JavaScript, который его обрабатывает. Это ограничение, опять же, для безопасности пользователя. Страница с http://anysite.com, которую открыл пользователь, не должна иметь доступа к другой вкладке браузера с URL-адресом, например, http://gmail.com, и красть оттуда информацию.

  • JavaScript может легко связываться по сети с сервером, с которого пришла текущая страница. Но его способность получать данные с других сайтов/доменов ограничена. Хотя это возможно, для этого требуется явное согласие (выраженное в заголовках HTTP) с удаленной стороны. Еще раз, это ограничение безопасности.

Таких ограничений не существует, если JavaScript используется вне браузера, например на сервере. Современные браузеры также позволяют использовать плагины/расширения, которые могут запрашивать расширенные разрешения.

Что делает JavaScript уникальным?

В JavaScript есть как минимум три замечательных свойства:

  • Полная интеграция с HTML/CSS.
  • Простые вещи делаются просто.
  • Поддерживается всеми основными браузерами и включен по умолчанию.

JavaScript — единственная браузерная технология, сочетающая в себе эти три вещи.

Именно это делает JavaScript уникальным. Вот почему это самый распространенный инструмент для создания интерфейсов браузера.

Тем не менее, JavaScript можно использовать для создания серверов, мобильных приложений и т. д.

Заключение

Первоначально JavaScript создавался как язык только для браузера, но теперь он используется и во многих других средах. Сегодня JavaScript занимает уникальное положение как наиболее распространенный язык браузера, полностью интегрированный с HTML/CSS.

Есть много языков, которые «транспилируются» в JavaScript и предоставляют определенные функции. Рекомендуется взглянуть на них, хотя бы бегло, после освоения JavaScript.