Движок JavaScript V8
V8 — это название движка JavaScript, который используется в Google Chrome. Именно он обрабатывает наш JavaScript-код при работе в Chrome.
V8 — это движок JavaScript, то есть он разбирает и выполняет код JavaScript. DOM и другие API веб-платформы (все они составляют среду выполнения) предоставляются браузером.
Замечательно то, что движок JavaScript не зависит от браузера, в котором он размещен. Эта ключевая особенность позволила появиться Node.js. V8 был выбран в качестве движка для Node.js еще в 2009 году, и по мере роста популярности Node.js, V8 стал движком, который теперь обеспечивает работу невероятного количества серверного кода, написанного на JavaScript.
Экосистема Node.js огромна, и это благодаря V8, который также используется в настольных приложениях, таких как Electron.
Другие движки JS
Другие браузеры используют свои собственные движки JavaScript:
SpiderMonkey
(Firefox)JavaScriptCore
(также называетсяNitro
) (Safari)- Edge первоначально был основан на
Chakra
, но в последнее время был перестроен с использованием Chromium и движка V8.
Существует и множество других.
Все эти движки реализуют стандарт ECMA ES-262, также известный как ECMAScript, стандарт, используемый JavaScript.
Стремление к производительности
V8 написан на C++, и постоянно совершенствуется. Он переносим и работает на Mac, Windows, Linux и нескольких других системах.
В этом вводном обзоре V8 мы пропустим детали реализации V8: их можно найти на более авторитетных сайтах (например, на официальном сайте V8), и они со временем меняются, часто радикально.
V8 постоянно развивается, как и другие движки JavaScript, чтобы ускорить работу веб-приложений и экосистемы Node.js.
В вебе уже много лет идёт гонка за производительность, и мы (как пользователи и разработчики) очень выигрываем от этого соревнования, потому что получаем всё более быстрые и оптимизированные машины год от года.
Компиляция
JavaScript обычно считается интерпретируемым языком, но современные движки JavaScript больше не просто интерпретируют JavaScript, они его компилируют.
Это происходит с 2009 года, когда компилятор JavaScript SpiderMonkey был добавлен в Firefox 3.5, и все последовали этой идее.
JavaScript внутренне компилируется V8 с компиляцией just-in-time (JIT) для ускорения выполнения.
Это может показаться неинтуитивным, но с момента появления Google Maps в 2004 году JavaScript эволюционировал из языка, который обычно выполнял несколько десятков строк кода, до полноценных приложений с тысячами и сотнями тысяч строк кода, работающих в браузере.
Наши приложения теперь могут работать часами внутри браузера, а не просто выполнять несколько правил проверки форм или простых скриптов.
В этом новом мире компиляция JavaScript имеет смысл, потому что, хотя на подготовку JavaScript может потребоваться немного больше времени, после этого он будет работать намного эффективнее, чем чисто интерпретируемый код.