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

Традиционный рабочий процесс "запрос-ответ" и влияние JavaScript

Когда вы хотите посетить веб-страницу, вы используете свой клиент (браузер) на своем компьютере. После нажатия на результат поиска Google или ввода URL-адреса соответствующая веб-страница загружается в окно браузера. Но что происходит на заднем плане. Ваш веб-запрос отправляется на сервер (могут быть географически расположены в другом месте). Затем сервер обрабатывает ваш веб-запрос и отправляет вам ответ в формате HTML. Эта html-страница может содержать ссылки, формы и т. д. Когда вы нажимаете на одну из этих ссылок или отправляете форму, запрос снова отправляется на сервер и отправляет ответ с другим HTML. Так работают традиционные веб-страницы. JavaScript может сделать это более реактивным. Он может пропустить второй запрос в некоторых случаях и изменить уже загруженный html и сделать там какие-то действия.

Как выполняется JavaScript?

«Компилировать во время выполнения». Если вам нужно выполнить некоторые эффекты или изменить веб-страницу с помощью кода JavaScript, вам потребуется помощь движка JavaScript. Движок JavaScript поставляется вместе с браузером (встроен в браузер). Существует несколько различных движков, у Chrome есть знаменитый движок V8, а для Firefox это SpiderMonkey. Механизм JavaScript анализирует ваш код и на лету компилирует его в машинный код, потому что машинный код выполняется быстрее. Затем он выполняет код, чтобы отразить изменения на веб-странице. Этот процесс происходит в браузере (клиентская машина).

Почему мы называем это динамическим?

Java, C# и многие другие языки требуют предварительно скомпилированного кода перед выполнением. Но для JavaScript нам не нужно предварительно компилировать код, вместо этого он анализирует и компилирует во время выполнения «на лету» (в браузере с помощью движка JavaScript). Из-за этого код может меняться во время выполнения. Например, мы можем изменить тип переменной, а также данные этой переменной. Нехорошо изменять данные или тип переменной во время выполнения (динамически), хотя мы можем это сделать.

Что означает слабо типизированный?

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

Выполняется в хост-среде

Как я упоминал ранее, JavaScript был изобретен для создания более динамичных веб-сайтов путем выполнения в браузере. JavaScript может манипулировать HTML, CSS, отправлять фоновый HTTP-запрос и многое другое. Но он не может получить доступ к локальной файловой системе. Для выполнения кода JavaScript необходим движок JavaScript. Движок встроен в браузер. Но движок Google JavaScript (движок V8) был извлечен для запуска JavaScript в любом месте. Он создал новую среду под названием «Node.js». Node.js можно установить на серверную машину и запустить там код JavaScript. JavaScript на стороне сервера. Это новая хост-среда для JavaScript.