Прямо сейчас мы везде используем JavaScript. Мы запускаем код на наших компьютерах, и компьютеры знают, что делать с нашим кодом, разве это не удивительно? На самом деле, сам компьютер не знает, что делать с нашими кодами. движок JavaScript, который компьютеры могут распознавать и «переводить» эти коды.

Что такое движок JavaScript?

JavaScript Engine - это переводчик JavaScript. Он переводит JavaScript в машинный код, язык, который компьютеры могут понимать и обрабатывать. Именно так машина понимает наши команды.

Брэндон Найт изобрел движок JavaScript. Он изобрел обезьяну-паука, Now-a-days, известную как Firefox.

Получить машинный код или запустить код JavaScript можно двумя способами:

  1. Переводчик
  2. Компилятор

Интерпретатор: переводчик быстро встает. Он просто считывает код построчно и преобразует его в байт-код, а этот байт-код преобразуется в машинный код.

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

Существуют разные движки JavaScript (JS):

1. Chakra: Движок JavaScript, используемый в Microsoft Edge.

2. SpiderMonkey: движок JavaScript в приложениях Mozilla Gecko, включая Firefox.

3. JavaScriptCore: интерпретатор JavaScript и JIT, первоначально производный от KJS. Используется в проекте WebKit и таких приложениях, как Safari. Также известен как Nitro, SquirrelFish и SquirrelFish Extreme.

4. V8: движок JavaScript, используемый в Google Chrome, Node.js и V8.NET (наиболее широко используемый).

…… и многое другое

Двигатель V8

В 2008 году Google представил V8 Engine, который представляет собой сборку движка JavaScript с открытым исходным кодом с использованием C ++. V8 Engine объединяет интерпретатор и компилятор и создает (JIT) только в Компилятор времени.

Он был создан для браузеров Chromium Project и Chrome, но в настоящее время является базой для других технологий на основе JavaScript, таких как Node.js, MongoDB и т. Д.

V8 Engine - это отдельный проект, который сам по себе является движком JS. Он не зависит от браузера Chrome или чего-то подобного.

Глубокое погружение в движок JavaScript V8

Когда мы запускаем JS-файл, этот файл передается парсеру. Парсер преобразует его в токены, и эти токены передаются в AST (абстрактное синтаксическое дерево) .AST создает дерево из этих токенов. Затем код изначально отправляется интерпретатору. движок это называется Ignition. Он принимает AST и преобразует AST в байтовый код. Между тем, код отправляется профилировщику или отслеживает, как мы можем оптимизировать код, например, сколько раз код , какие типы используются. Если блок кода запускается в течение некоторого времени, он отправляет код JIT-компилятору, оптимизирует код и заменяет код оптимизированным машинным кодом, где это необходимо. Это увеличивает скорость JavaScript. JIT-компилятор называется Turbo Fan в движке v8 Engine.

Выводы

Я надеюсь, что вы понимаете, как работает JavaScript и почему он быстрый. В этом блоге мы рассмотрели:

  • Что такое JS-движок.
  • Как код JS оптимизируется изнутри.