Функции ECMAScript 6 доступны в Node.js 0,12

Новый стабильный выпуск Node.js(0.12) недавно появился с обновленным движком JavaScript Google v8, v3.28.73.

Какие функции ECMAScript 6 в настоящее время присутствуют в Node.js, не используя флаг --harmony?

Я проверил несколько сайтов, претендующих на список функций ES 6, но все они выглядят устаревшими - наиболее заметно, эта таблица ( Обновление: теперь обновляется с текущим статусом Node.js с 0.12), поскольку некоторые из функций перечислены как требующие флаг --harmony, пока я обнаружил, что некоторые из них включены по умолчанию (Карты, Наборы, Символы, чтобы назвать несколько). Обновить: Node конкретные таблицы с тех пор были доступны

Кроме того, пытаясь использовать эту информацию исключительно для двигателя v8, вы получаете слишком актуальную информацию - текущая версия v8 равна 4.2. *, что довольно опережает то, что использует Node.js.

Мои надежды на то, что этот вопрос (и его ответы) станет всеобъемлющим обзором того, какие функции ES 6 теперь доступны разработчикам Node.js.

Функции ES 6 включены в Node.js 0.12 Я в настоящее время знаю:

  • Карты, наборы /WeakMaps, WeakSets
  • Символы
  • Object.observe
  • Promises
  • Количество
    • .isInteger
    • .isSafeInteger
    • .isNaN
    • epsi;
    • .MIN_SAFE_INTEGER
    • .MAX_SAFE_INTEGER
  • Math
    • .clz32
    • .imul
    • .sign
    • .log10
    • .log2
    • .log1p
    • .expm1
    • .cosh
    • .sinh
    • .tanh
    • .acosh
    • .asinh
    • .atanh
    • .trunc
    • .fround
    • .cbrt
    • .hypot

Ответ 1

Особенности без --harmony:

Я думаю, что все, что у нас есть без флага --harmony.

Функции с флагом --harmony:

Я думаю, что все. Может быть, если я что-то забыл, я добавлю его позже в список.

Ответ 2

Элементы ES6 стекают до Node поэтапно. Node использует Google V8 в качестве механизма JavaScript. Функция, поддерживаемая в Node, означает, что она сначала должна быть реализована в V8, а затем Node команда должна включить ее в Node.js.

Команда в Google выпускает новую версию V8 примерно каждые шесть недель, а затем до команды Node, чтобы использовать ее.

В ручном порядке список функций языка хорош, но может быстро устаревать. Node 0.12 больше не работает в потоке, но обычно вручную свернутый список становится устаревшим, как только разворачивается новая версия Node.

Вот два альтернативных способа проверить, какие функции поддерживает версия Node, не полагаясь на статический список. Для дальнейшего чтения и более подробных примеров их использования вы можете проверить Как проверить, поддерживает ли Node.js функцию языка ES 6

# 1 Таблица с удобной совместимостью

Динамически сгенерированный список, который опирается на небольшие тесты, чтобы подтвердить наличие языковой функции, остается более свежим. Одним из таких популярных списков является kangax.github.io/compat-table/es6/. Мы заинтересованы только в функциях Node, поэтому вы можете использовать

http://node.green

который использует те же данные, что и сайт kangax.

# 2 Hard-backtrack Версия V8

Node использует двигатель V8, поэтому определение, какая версия V8 включена в Node, указывает нам, какие функции языка ES6 поддерживаются. Вы можете узнать, какая версия V8 была включена в Node с помощью node -p process.versions.v8.

$ node -p process.versions.v8
4.6.85.31

Затем, используя ресурсы проекта Google V8, вы можете найти, какие функции реализованы в каждой версии. В проекте V8 хранится трекер ошибок, где вы можете найти ES6 + помимо функций, отмеченных меткой гармонии.