Мне всегда было любопытно узнать, как браузеры понимают код Javascript? Как мы используем Javascript для выполнения некоторых сложных операций? Ответ — «Javascript Engine».

Механизм Javascript помогает браузеру понять код JS. Проще говоря, всякий раз, когда мы пишем код Javascript, «что-то» должно преобразовать код в машиночитаемый код. Это «что-то» называется движком Javascript.

Существует множество движков Javascript, разработанных гениальными людьми, например
1) Chakra: используется Microsoft Edge.
2) V8: используется google chrome, nodeJs
3) Spidermonkey: используется firefox.
4)JavascriptCore: используется Safari.
5)Tamarin: используется Adobe flash.

Первым человеком, создавшим движок Javascript, стал соучредитель проекта Mozilla Брендан Эйх. Теперь он также является генеральным директором Brave Software. В 1995 году он написал для Netscape первый движок JavaScript под названием «Mocha». Когда Netscape был лидером в разработке веб-браузеров. Что наиболее важно, JavaScript был первоначально разработан и реализован г-ном Бренданом Эйхом в мае 1995 года в Netscape. Я так благодарен ему за то, что он прокомментировал мой предыдущий твит и поделился ценными ссылками на документы.

Вот ссылка на статью
[https://hopl4.sigplan.org/details/hopl-4-papers/10/JavaScript-The-First-20-Years](Ссылка)

Ранняя версия SpiderMonkey (используемая в Firefox) также была создана им. Firefox по-прежнему использует движок javascript (SpiderMonkey). Благодаря ему мы можем выполнять файлы javascript в браузере.

Рабочий процесс движка Javascript
Движок использует синтаксический анализатор, чтобы просмотреть код построчно и проверить правильность синтаксиса, а затем создает древовидную структуру данных, называемую AST (абстрактное синтаксическое дерево). ). Код из AST легко превратить в машинный код.
Затем интерпретатор превращает AST в IR (абстракцию машинного кода и посредника между кодом JS и машинным кодом). Следующим шагом будет преобразование IR в машинный код. В мире программирования есть два способа перевести его в машинный код. Интерпретатор или компилятор. Интерпретатор переводит код построчно, он не переводит до того, как вы начнете выполнять свой код. Это довольно первое, но проблема возникает, когда мы запускаем один и тот же код более одного раза, как циклы. Затем вам придется делать один и тот же перевод снова и снова. С другой стороны, компилятор создает перевод и записывает его, он переводит весь код построчно, что является длительным процессом. В этом сценарии JIT представил. Полное значение JIT заключается в своевременном компиляторе.
JIT представляет собой комбинацию интерпретатора и компилятора. Существует часть движка Javascript, называемая монитором (профилировщиком). Монитор наблюдает за выполнением кода и делает пометки. Во-первых, он переводит все файлы Javascript интерпретатором, если одни и те же строки кода запускаются несколько раз, он передает код компилятору и снижает нагрузку на ЦП. Что помогает браузеру работать быстрее. Это все, что я узнал о движке Javascript. Вы можете поделиться своим мнением в разделах комментариев. Вот несколько полезных ссылок о движке Javascript
[https://nodejs.dev/learn/the-v8-javascript-engine](Link)
[https://hopl4.sigplan .org/details/hopl-4-papers/10/JavaScript-The-First-20-Years](ссылка)