Funkcje ECMAScript 6 Dostępne w Node.js 0.12

Nowe stabilne wydanie Node.js (0.12) wylądował niedawno z ulepszonym silnikiem JavaScript V8 Google, v3.28.73.

Jakie funkcje ECMAScript 6 są obecnie obecne w Node.js, bez użycia flagi --harmony?

Sprawdziłem kilka stron twierdząc, że wymieniają funkcje ES 6, ale wszystkie z nich wydają się nieaktualne - najbardziej widocznie, Ta tabela (Aktualizacja: teraz zaktualizowany o bieżący węzeł.stan js od 0.12), ponieważ kilka funkcje są wymienione jako wymagające flagi --harmony, podczas gdy znalazłem niektóre z nich są włączone domyślnie(Mapy, Zestawy, symbole, aby wymienić kilka). Update: od tego czasu udostępniono tabele specyficzne dla węzłów

Ponadto, próba wygooglowania tych informacji wyłącznie dla silnika v8 daje zbyt aktualne informacje-aktualne wydanie v8 to 4.2.*, który jest całkiem przed jakim węzłem.js używa.

Mam nadzieję, że to pytanie (i jego odpowiedzi) stanie się kompleksowe podsumowanie, jakie funkcje ES 6 są teraz dostępne dla Node.js developers.

ES 6 funkcje włączone w Node.js 0.12 obecnie znam:

  • Mapy, Zestawy / Weakmapy, WeakSets
  • Symbole
  • obiekt.obserwuj
  • obietnice
  • Liczba
    • .isInteger
    • .isSafeInteger
    • .isNaN
    • .EPSILON
    • .MIN_SAFE_INTEGER
    • .MAX_SAFE_INTEGER
  • Matematyka
    • .clz32
    • .imul
    • .znak
    • .log10
    • .log2
    • .log1p
    • .expm1
    • .cosh
    • .sinh
    • .tanh
    • .acosh
    • .asinh
    • .atanh
    • .trunc
    • .fround
    • .cbrt
    • .hipot
Author: Mchl, 2015-02-08

2 answers

Cechy Bez --harmony flagi:

Myślę, że to wszystko, co mamy Bez --harmony flagi.

Cechy z --harmony flaga:

To chyba wszystko. Może gdybym o czymś zapomniał-dodam to później do listy.
 250
Author: alexpods,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-05 17:30:31

Funkcje ES6 spływają do węzła etapami. Node używa Google V8 jako silnika JavaScript. Funkcja obsługiwana w Node oznacza, że najpierw musi zostać zaimplementowana w V8, a następnie zespół Node musi ją włączyć do Node.js.

Zespół Google wydaje nową wersję V8 mniej więcej co sześć tygodni, a następnie do zespołu Node, aby wziąć go do użytku.

Ręcznie dobierane listy funkcji językowych są ładne, ale mogą szybko stać się nieaktualne. Node 0.12 to nie jest flux już, ale zazwyczaj ręcznie kierowana lista staje się przestarzała, gdy tylko nowa wersja węzła jest rozwijana.

Oto dwa alternatywne sposoby sprawdzania, jakie funkcje obsługuje Wersja węzła, bez polegania na statycznej liście. Aby uzyskać więcej informacji i bardziej szczegółowe przykłady korzystania z nich, możesz sprawdzić "Jak sprawdzić, czy węzeł.js obsługuje funkcję języka ES 6 "

#1 Tabela kompatybilności Easy - compatibility

Dynamicznie generowana lista, która opiera się na małych testach, aby potwierdzić obecność funkcji językowych pozostaje na bieżąco. Jedną z tak popularnych list jest kangax.github.io/compat-table/es6/. interesują nas tylko funkcje węzłów, więc możesz używać

Http://node.zielony

To wykorzystuje te same dane, Co strona kangax.

#2 wersja Hard-backtrack V8

Node używa silnika V8, więc określenie, która Wersja V8 jest zawarta w Node, mówi nam, jakie funkcje języka ES6 są obsługiwane. Możesz dowiedzieć się, która Wersja V8 został dołączony do węzła z node -p process.versions.v8.

$ node -p process.versions.v8
4.6.85.31

Następnie za pomocą zasobów projektu Google V8 można znaleźć, które funkcje są zaimplementowane w każdej wersji. Projekt V8 przechowuje issue tracker gdzie można znaleźć funkcje ES6+beyond oznaczone etykietą harmony.

 3
Author: pspi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-16 11:35:17