Подтвердить что ты не робот

Различия V8 и ECMAScript

Где я могу найти список всех различий между V8 и ECMAScript? Например, V8 поддерживает const, который не является частью стандарта ECMAScript.

4b9b3361

Ответ 1

Изменить: Прямой ответ: Состояние отслеживания реализации ES5 продолжается, что указывает V8 googlecode проблемы с тегами es5 или https://github.com/joyent/node/wiki/ECMA-5-Mozilla-Features-Implemented-in-V8

V8 реализует все ES5 в настоящее время в стороне от нескольких крайних случаев, и только тогда, чтобы соответствовать большинству других текущих браузеров, обрабатывающих данную ситуацию.

Поскольку он не будет жить самостоятельно, почти все различия, с которыми вы столкнетесь, будут в реализации среды хоста, обернутой вокруг него. Для большинства применений это различные веб-браузеры API. В качестве примера, отличного от браузера, Node.js предоставляет пользовательские API для файловой системы и сетевого взаимодействия. С точки зрения основного языка там просто не так много места для маневра. Минус DOM, JavaScript - довольно простенький простой язык для использования (часть почему это так замечательно) и имеет действительно специальный документ спецификации.

ES5 - это итерация с ES3 и почти 100% обратная совместимость, если не используется 'use strict'. После почти десятилетия стагнации наряду с неспособностью получить консенсус среди основных разработчиков движка JavaScript, ES5 родился и ограничен в первую очередь для вырезания и устранения наихудших проблем с языком. Степень использования ES5 в основном потоке - это дополнительные объекты Array, дополнительные объекты (в основном Object.create), Function.bind и строгий режим (который целиком посвящен отключению функций), а также несколько помощников туземцев, таких как встроенные JSON и base64.

Большая часть этой 240-страничных спецификаций проводится с кропотливым определением каждой детали о поведении, которая существовала в JavaScript уже почти 15 лет, а также как список функций, которые будут устаревать и в конечном итоге удалены (with, различные использования eval и т.д.).

Гармония (ES6) - первое реальное большое изменение, которое мы увидим. ES5 выполнила задачу получения реализаций на одной странице и избавления от большинства проблемных частей JS. С нетерпением ожидая ES6, пришло время рассмотреть некоторые основные проблемы языка, требующие синтаксических изменений для исправления. ES6 планируется завершить в конце 2013 года, но большие куски уже реализованы в JS-двигателях, чтобы проверить их и посмотреть, как они работают в практическом использовании. Интернет - это живое существо, и внедрение новых стандартов - это не вопрос создания новой спецификации, а затем развязывания ее в мире, как и в большинстве других отраслей. Идеи плавают и должны проходить на уровне исполнителей (ребята, которые пишут V8, Spidermonkey, JSC, Chakra и т.д.), А затем фактический уровень пользователя (пользователь в этом случае является веб-разработчиком, пишущим код для запуска в этих машинах), Тихая диверсия из слоновой кости просто приводит к отсутствию использования.

В частности, в случае const: это в настоящее время точно не определено полностью. Это ключевое слово с аналогичной, но не совсем той же функциональностью в V8 и Spidermonkey, и имеет аналогичное, но не совсем то же значение для ES6. Вероятно, вы можете с уверенностью использовать его, если ожидаете, что ваш движок целевой аудитории поддержит его в настоящее время, но в его реализации он не был технически частью какой-либо официальной спецификации. migrating let' and const '

Помимо того, что там находятся "Хост-объекты", которые отображаются данным движком, JS script. JavaScript существовал сначала как реализация, а второй как спецификация, поэтому до недавнего времени не было очевидным для неспециалистов знать, где находится подводная линия. Когда он работает в браузере (как это обычно бывает), Document Object Model отображается как объект-хост для автоматического использования. Функциональность DOM в значительной степени описывается с помощью IDL и входит в компетенцию W3C. Множество спецификаций включает 6 разделов верхнего уровня, почти 50 отдельных рабочих групп и около 1000 отдельных спецификаций. Это интерфейсы, подверженные JavaScript, но полностью неуправляемые требованиями любой спецификации JavaScript. DOM охватывает огромное пространство описанной функциональности и постоянно меняет ее реализацию.