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


162

Нещодавно вийшов новий стабільний випуск Node.js (0,12) з оновленим двигуном JavaScript v8, v3.28.73 .

Які функції ECMAScript 6 зараз є у Node.js, не використовуючи --harmonyпрапор?

Я перевірив декілька сайтів, які заявляють про перелік функцій ES 6, але всі вони здаються застарілими - найбільш помітною є ця таблиця ( Оновлення: тепер оновлено з поточним статусом Node.js станом на 0,12 ), оскільки деякі функції вказані як вимагаючи --harmonyпрапора, поки я виявив, що деякі з них увімкнено за замовчуванням (Карти, набори, символи, щоб назвати їх декілька). Оновлення : З тих пір таблиці доступні для вузла

Крім того, спроба Google отримати цю інформацію виключно для двигуна v8 дає надто сучасну інформацію - поточний випуск v8 становить 4.2. * , Що значно випереджає те, що використовує Node.js.

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

Увімкнено функції ES 6 у Node.js 0,12, про які я зараз знаю:

  • Карти, набори / слабкі карти, слабкі набори
  • Символи
  • Об'єкт.спостереження
  • Обіцянки
  • Номер
    • .isInteger
    • .isSafeInteger
    • .isNaN
    • .EPSILON
    • .MIN_SAFE_INTEGER
    • .MAX_SAFE_INTEGER
  • Математика
    • .clz32
    • .imul
    • . підпис
    • .log10
    • .log2
    • .log1p
    • .expm1
    • .кош
    • .sinh
    • .tanh
    • .акош
    • .asinh
    • .atanh
    • .trunc
    • .навколо
    • .cbrt
    • .гіпот

9
"Я сподіваюся, що це питання (та його відповіді) стане вичерпним підсумком того, які функції ES 6 тепер доступні розробникам Node.js." - Шанси полягають у тому, що він просто стане невпорядкованим безладом ... це так само застаріло, як і всі інші ресурси !! Якщо ви 1) самовідповідаєтесь і 2) не знайдіть час, щоб виправити інші відповіді у ваших. Якщо ви готові виконати цю роботу, то, можливо, буде більш доречно це зробити в блозі.
Стівен C

2
Або просто переключитися на io.js (який поставляється з набагато більш до дати V8 версії) і тримати очей на ES6 на io.js сторінці .
Fabrício Matté

2
Курована таблиця сумісності ES6: kangax.github.io/compat-table/es6
Fabrício Matté

2
@JonathanLonowski Цікаво, як це не дивно, що я не можу знайти проблему / PR щодо Node 0,12. редагувати: подала проблему .
Фабріціо Матте

1
@RobertRossmann - кожен може мати щоденник. Я не сумніваюся у вашій меті. Просто я не думаю, що це спрацює ... якщо хтось (тобто >> ти <<) не докладе зусиль >>, щоб змусити його працювати.
Стівен C

Відповіді:


250

Особливості без --harmonyпрапора:

Я думаю, що це все, що ми маємо без --harmonyпрапора.

Особливості з --harmonyпрапором:

Я думаю, що це все. Може, якщо я щось забув - я згодом додаю його до списку.


8
Це саме та відповідь, яку я сподівався отримати - чистий та із посиланнями на документи / приклади! Додаткові бали за перелік функцій під --harmonyпрапором. :)
Роберт Россманн

2
Шаблони рядків виходять із або без --harmony? Як у ${varname}синтаксисі зворотного галочки рядка?
Сукіма

5
@Sukima Node v0.12 не підтримує рядки шаблону , ні з --harmonyпрапором, ні без нього. Але iojs підтримує їх без необхідності будь-яких прапорів.
alexpods

1
Чи nodejs це документує де-небудь? Це дуже корисно.
Джастін Хамаде

1
@JonRed Можливо, ваш запуск провалився з іншої причини, а не через постійну. Я тільки що спробував це і мій пробіг працює досить добре.
alexpods

4

ES6 оснащений поетапно до вузла. Node використовує V8 Google як двигун JavaScript. Функція, що підтримується в Node, означає, що спочатку її потрібно реалізувати в V8, а потім команда Node повинна включити її в Node.js.

Команда в Google випускає нову версію V8 приблизно кожні шість тижнів, і тоді команда Node повинна прийняти її до використання.

Кураторні списки мовних функцій є приємними, але можуть швидко застаріти. Вузол 0,12 вже не є потоком, але, як правило, список, обраний вручну, стає застарілим, як тільки буде випущена нова версія Node.

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

№1 Легко - таблиця сумісності

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

http://node.green

що використовує ті самі дані, що й сайт kangax.

# 2 Жорстка - зворотна версія V8

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

$ node -p process.versions.v8
4.6.85.31

Тоді, використовуючи ресурси проекту V8 від Google, можна дізнатися, які функції реалізовані в кожній версії. Проект V8 зберігає трекер випуску, де ви можете знайти ES6 + за межами функцій, позначених ярликом гармонії .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.