Функции ECMAScript 6 доступны в узле.js 0.12
новый стабильный выпуск узла.js (0.12) недавно приземлился с обновленным движком JavaScript V8 от Google, В3.28.73.
какие функции ECMAScript 6 в настоящее время присутствуют в узле.js, без использования --harmony
флаг?
Я проверил несколько сайтов, претендующих на список функций ES 6, но все они кажутся устаревшими - наиболее заметно,в этой таблице (обновление:теперь обновляется с текущим узлом.Яш статус 0.12), потому что некоторые из функций перечислены как требующие --harmony
флаг в то время как я обнаружил, что некоторые из них включены по умолчанию (карты, наборы, символы, чтобы назвать несколько). обновление:отдельных узлов, таблицы С тех пор были доступны
кроме того, пытаясь google эту информацию чисто для двигателя v8 дает слишком актуальную информацию-текущий выпуск v8 является 4.2.* , который довольно опережает какой узел.js использует.
Я надеюсь, что этот вопрос (и его ответы) станет исчерпывающим резюме о том, какие функции ES 6 теперь доступны для узла.JS-разработчиков.
ES 6 функции включены в узле.js 0.12 в настоящее время я знаю:
- Карты, Наборы / Слабые Карты,
2 ответа:
функции без
--harmony
флаг:
- цикл"for-of"
- карта, Set,WeakMap,WeakSet (уже указано в вопросе)
- символ (уже указано в вопросе)
- обещание (уже указано в вопросе)
- методы Array :
- объект:
- .наблюдать() (изначально был планируется для ES7, но удалены из спецификации полностью 2 ноября, 2015)
- .есть()
- .setPrototypeOf ()
- .getOwnPropertySymbols ()
- .getNotifier () (не es6, пример здесь)
- .применять и. вызов () (не es6, та же цель, что и Funciton.прототип.вызов и функция.прототип.применить)
- числовые свойства и методы (уже заданные в вопрос)
- математические методы (их много) (уже указан в вопрос)
- константы
Я думаю, что это все, что у нас есть без
--harmony
флаг.функции с
--harmony
флаг:
- генераторы
- функции стрелочку (без
--harmony_arrow_functions
флаг в отличие отio.js
)- давайте переменных только в
strict mode
- двоичной и восьмеричной литералы
string методы:
- .содержит() (был заменен
includes()
на самом деле ES6 спецификация)- .startsWith ()
- .endsWith ()
- .codePointAt()
- .повторить ()
- .нормализовать()
- строку.fromCodePoint
Прокси (за
--harmony-proxies
флаг)Я думаю, что это все. Может быть, если я забыл что - то-я добавлю это позже в список.
ES6 особенности стекают вниз к узлу в фазах. Node использует V8 от Google в качестве движка JavaScript. Функция, поддерживаемая в узле, означает, что она сначала должна быть реализована в V8, а затем команда узла должна включить ее в узел.js.
команда в Google выпускает новую версию V8 примерно каждые шесть недель, а затем это до команды узла, чтобы принять его в эксплуатацию.
вручную кураторские списки языковых функций хороши, но могут быстро устареть. Узел 0.12 не это в потоке больше, но обычно вручную кураторский список становится устаревшим, как только выкатывается новая версия узла.
вот два альтернативных способа проверить, какие функции поддерживает версия узла, не полагаясь на статический список. Для дальнейшего чтения и более подробных примеров их использования вы можете проверить "Как проверить, если узел.js поддерживает функцию языка ES 6"
#1 простая таблица совместимости
динамически генерируемый список это зависит от небольших тестов, чтобы подтвердить наличие языковой функции остается лучше в актуальном состоянии. Одним из таких популярных списков является kangax.github.io/compat-table/es6/. нас интересуют только функции узла, поэтому вы можете использовать
это использует те же данные, что и сайт kangax.
#2 Hard-backtrack V8 version
узел использует двигатель V8, поэтому определение того, какая версия V8 включена в узел, говорит нам, что ES6 поддерживаются языковые функции. Вы можете узнать, какая версия V8 была в комплекте в узле с
node -p process.versions.v8
.$ node -p process.versions.v8 4.6.85.31
затем, используя ресурсы проекта V8 от Google, вы можете найти, какие функции реализованы в каждой версии. Проект V8 сохраняет проблема tracker где вы можете найти ES6 + за пределами функций, отмеченных гармония метки.