Механизм JavaScript - это компьютерная программа , выполняющая код JavaScript . Первые движки JavaScript были простыми интерпретаторами , но все соответствующие современные движки используют своевременную компиляцию для повышения производительности. [1]
Механизмы JavaScript обычно разрабатываются поставщиками веб-браузеров , и они есть в каждом крупном браузере. В браузере движок JavaScript работает совместно с механизмом рендеринга через объектную модель документа .
Использование движков JavaScript не ограничивается браузерами. Например, механизм V8 является основным компонентом систем времени выполнения Node.js и Deno .
Поскольку ECMAScript - это стандартизированная спецификация JavaScript, движок ECMAScript - другое название этих движков. С появлением WebAssembly некоторые движки также могут выполнять этот код в той же песочнице, что и обычный код JavaScript.
История
Первый движок JavaScript был создан Бренданом Эйхом в 1995 году для веб-браузера Netscape Navigator . Это был элементарный интерпретатор зарождающегося языка, изобретенного Эйхом. (Он превратился в движок SpiderMonkey , который до сих пор используется браузером Firefox .)
Первым современным движком JavaScript был V8 , созданный Google для своего браузера Chrome . V8 дебютировал как часть Chrome в 2008 году, и его производительность была намного лучше, чем у любого предыдущего двигателя. [2] [3] Ключевым нововведением стала компиляция точно в срок , которая может значительно сократить время выполнения.
Другим производителям браузеров, чтобы конкурировать, потребовалось пересмотреть свои интерпретаторы. [4] Apple разработала движок Nitro для своего браузера Safari , производительность которого на 30% выше, чем у его предшественника. [5] Mozilla использовала части Nitro для улучшения своего собственного движка SpiderMonkey. [6]
С 2017 года в эти движки добавлена поддержка WebAssembly . Это позволяет использовать предварительно скомпилированные исполняемые файлы для критических для производительности частей скриптов страницы.
Известные двигатели
- V8 от Google - наиболее часто используемый движок JavaScript. Его используют Google Chrome и многие другие браузеры на основе Chromium , а также приложения, созданные с помощью CEF , Electron или любой другой платформы, в которую встроен Chromium. Другие варианты использования включают системы времени выполнения Node.js и Deno .
- SpiderMonkey разработан Mozilla для использования в Firefox и его форках . GNOME Shell использует его для поддержки расширения.
- JavaScriptCore - это движок Apple для браузера Safari . Другие браузеры на основе WebKit также используют его. KJS от KDE стал отправной точкой для его разработки. [7]
- Chakra - это движок браузера Internet Explorer . Он также был разветвлен Microsoft для исходного браузера Edge , но позже Edge был перестроен как браузер на основе Chromium и, таким образом, теперь использует V8. [8] [9]
Рекомендации
- ^ Looper, Джен (2015-09-21). «Руководство по движкам JavaScript для идиотов» . Сеть разработчиков Telerik . Архивировано из оригинала на 2018-12-08 . Проверено 8 декабря 2018 .
- ^ «Большой сравнительный тест браузеров: Internet Explorer против Firefox, Opera, Safari и Chrome» . Оборудование для компьютерных игр . Computec Media AG . Проверено 28 июня 2010 .
- ^ «Тесты скорости Lifehacker: Safari 4, Chrome 2» . Лайфхакер . Проверено 28 июня 2010 .
- ^ «Mozilla спрашивает:« Мы уже быстро? » » . Проводной . Проверено 18 января 2019 .
- ^ Выпущен Safari 5
- ^ Шенкленд, Стивен (02.03.2010). «В Opera 10.5 появился новый движок JavaScript» . CNET . CBS Interactive . Проверено 30 января 2012 .
- ^ Стаховяк, Мацей (9 ноября 2008 г.). «Компании и организации, которые внесли свой вклад в WebKit» . WebKit Wiki . Проверено 13 апреля 2019 года .
- ^ Белфиоре, Джо (2020-01-15), Новый год, новый браузер - Предварительная версия нового Microsoft Edge больше не доступна и теперь доступна для загрузки , Microsoft
- ^ «Microsoft Edge и Chromium с открытым исходным кодом: наше намерение» . Команда Microsoft Edge. 6 декабря 2018 . Проверено 8 декабря 2018 .