Функции 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 + помимо функций, отмеченных меткой гармонии.