it-swarm.com.ru

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

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

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

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

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

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

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

  • Карты, Наборы/Слабые Карты, Слабые Наборы
  • Символы
  • Object.observe
  • Обещания
  • Число
    • .isInteger
    • .isSafeInteger
    • .isNaN
    • epsi;
    • .MIN_SAFE_INTEGER
    • .MAX_SAFE_INTEGER
  • Math
    • .clz32
    • .imul
    • .знак
    • .log10
    • .log2
    • .log1p
    • .expm1
    • .cosh
    • .sinh
    • .tanh
    • .acosh
    • .asinh
    • .atanh
    • .trunc
    • .fround
    • .cbrt
    • .hypot
163
Robert Rossmann

Функции без флага --harmony:

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

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

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

250
alexpods

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

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

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

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

# 1 Easy - таблица совместимости

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

http://node.green

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

# 2 Hard - версия с возвратом в 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 + за пределами функций, отмеченных меткой гармонии .

4
pspi