На этой странице

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.

У других браузеров есть собственные JavaScript-движки:

Существуют и многие другие.

Все эти движки реализуют стандарт ECMA ES-262, также называемый ECMAScript, — стандарт, который использует JavaScript.

V8 написан на C++ и постоянно совершенствуется. Он портируем и работает на Mac, Windows, Linux и ряде других систем.

В этом введении в V8 мы опустим детали его реализации: их можно найти на более авторитетных ресурсах (например, на официальном сайте V8), к тому же со временем они меняются, порой радикально.

V8 постоянно развивается — как и другие JavaScript-движки — чтобы ускорять веб и экосистему Node.js.

В вебе уже много лет идёт гонка за производительностью, и мы (как пользователи и разработчики) немало выигрываем от этой конкуренции: год за годом мы получаем всё более быстрые и оптимизированные машины.

JavaScript принято считать интерпретируемым языком, но современные JavaScript-движки уже не просто интерпретируют JavaScript — они его компилируют.

Так происходит с 2009 года, когда в Firefox 3.5 добавили JavaScript-компилятор SpiderMonkey, и все подхватили эту идею.

Внутри V8 компилирует JavaScript с помощью компиляции «на лету» (just-in-time, JIT), чтобы ускорить выполнение.

Это может показаться нелогичным, но со времён появления Google Maps в 2004 году JavaScript эволюционировал из языка, на котором обычно выполнялись пара десятков строк кода, до полноценных приложений в тысячи и сотни тысяч строк, работающих в браузере.

Теперь наши приложения могут работать в браузере часами, а не быть лишь набором правил валидации форм или простыми скриптами.

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