DevGang
Авторизоваться

Движок JavaScript

Это не аппаратное обеспечение, а программный код, который присутствует в каждом браузере. 

В этой статье мы расскажем о движке JavaScript (js).

JavaScript Runtime Environment (JSE) - среда выполнения  JavaScript. В каждом браузере есть JSE. JSE состоит из движка JS, который выполняет код JS, и он также является сердцем JSE. JSE содержит движок JS, API, очередь обратного вызова, очередь микрозадач и цикл событий. 

Внутри движка JS существуют различные шаги для получения выходных данных. JS-код, который мы пишем сначала, отправляется на синтаксический анализ. На этапе синтаксического анализа наш код разбивается на токены, как на изображении ниже, мы можем видеть, что let, a, = и 7 разбиты на токены.

Затем код передается синтаксическому анализатору, задача которой состоит в том, чтобы взять наш код и разбить его на абстрактное синтаксическое дерево (AST).

Теперь давайте разберемся с интерпретатором (interpreter) и компилятором (compiler).

Interpreter - задача интерпретатора состоит в том, чтобы взять код и выполнить его построчно. И это быстро. 

Сompiler - при этом весь наш код сначала компилируется еще до выполнения, и формируется новый код, которая является оптимизированной версией нашего кода, а затем он выполняется. Оптимизированный код выполняется очень быстро. Это эффективно.

Теперь перейдем к основной части. Когда JavaScript впервые был изобретен Бренданом Эйхом, он использовал интерпретатор для выполнения кода. Но современный браузер, такой как движок V8, использует Just In Time (JIT) компиляцию. Который использует как интерпретатор: как и компилятор для выполнения кода. Компиляция и выполнение идут рука об руку.  Наш AST отправляется интерпретатору, и он отправляется на выполнение и в то же время компилирует код, который выполняется в интерпретатором построчно

В некоторых движках тоже осуществляется компиляция AOT (ahead of time). Он принимает код и компилирует его перед выполнением. 

Куча памяти используется для хранения переменных. Сборщик мусора (GC) используется для сбора значения мусора. O предназначен для оптимизации. Сборка мусора использует алгоритм пометки и развертки для освобождения памяти. 

В настоящее время движок V8 Google является лучшим движком для JavaScript.

Если вы хотите влюбиться в JavaScript, вы должны извлечь из этого уроки.

#JavaScript
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу