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.