Движок JavaScript V8
V8 - это название движка JavaScript, который лежит в основе Google Chrome. Именно он берет наш JavaScript и выполняет его во время работы в Chrome.
V8 - это движок JavaScript, то есть он анализирует и выполняет код JavaScript. DOM и другие API веб-платформы (все они составляют среду выполнения) предоставляются браузером.
Самое замечательное в том, что движок JavaScript не зависит от браузера, в котором он размещен. Эта ключевая особенность привела к появлению Node.js. В 2009 году V8 был выбран в качестве движка для Node.js, и по мере того, как популярность 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 может занять немного больше времени, после завершения он будет гораздо более производительным, чем чисто интерпретированный код.