Как работает javascript

Опубликовано: 31.10.2017

видео Как работает javascript

Smartcoder. Java курс – Уровень 1. Как работает Java

JavaScript это просто язык. Так же, как, скажем, русский. Это абстрактная сущность. Чтобы она работала нужно две вещи — программа и исполнитель. А сам JavaScript — это только соглашение о том, как программист будет писать программу и как исполнитель (машина) будет ее трактовать.



Соответственно идея «выполнять, но не читать» имеет принципиальный дефект. Нельзя (намеренно, по приказу) сделать что-то, не зная, собственно, что делать. Можно не видеть всей программы, а знать только очередную инструкцию. Можно получить не саму программу, а ее запутанную-преобразованную версию, функционально аналогичную (т.е. результат будет тот же самый), но труднодоступную для понимания. Это относится в равной мере и к коду на JavaScript, и к приказу на русском языке. И вообще к любой системе программа-исполнитель.


Основы javascript 19 — Анимация и таймеры

Т.е. можно код на JS скомпилировать в какой-то другой код (правда, его должен понять браузер, а из браузеров очень плохие полиглоты) или обфусцировать, сделав «нечитаемым» человеком. Других вариантов в голову не приходит.

Выполняется, соответственно, там где есть исполнитель. Один из возможных, и наиболее частых исполнителей — браузер. Отправляем туда текст программы, браузер «видит» понятные ему директивы и действует. Сервер, в этом случае, JS-код не выполняет — код предназначен не для него — он его только отдает. И все это, разумеется, только если браузер поддерживает JavaScript (его поддержки может не быть, как, например, в старых мобильных телефонах, или он может быть отключен).


39 Как работает скрипт

Другой возможный исполнитель — сервер. Разумеется, само по себе ничего не произойдет — серверу, как и браузеру, нужно дать код и явным образом сказать «выполняй вот это.» И, разумеется, сервер должен иметь средства для выполнения JavaScript-кода (интерпретатор или компилятор). Примеры таких технологий — старый-древний ASP (там был JScript а не JavaScript, но разница невелика) или современные Rhino или node.js. Тут нет разницы между JavaScript, PHP, Python или любым другим языком. Ну, просто, вместо интерпретатора и кода на PHP заставили сервер запустить интерпретатор и код на JS.

Но это все общие слова. Ваш вопрос, как я догадываюсь, подразумевает одну вполне конкретную ситуацию — JS, который отдается в браузер. И тогда здесь простой и короткий ответ: «Нет, не несет и, нет, нельзя.»