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
2 answers
Cechy Bez --harmony
flagi:
- "for-of" pętla
- Mapa, Set, WeakMap, WeakSet (już określony w pytaniu)
- Symbol (już określony w pytaniu)
- obietnica (już określona w pytaniu)
- metody tablicy:
- obiekt:
- .obserwacja () (początkowo była planowana dla ES7, ale została usunięta ze specyfikacji w całości 2 listopada 2015)
- .na()
- .setPrototypeOf()
- .getOwnPropertySymbols()
- .getNotifier () (nie es6, przykład tutaj )
- .apply () oraz .call () (Nie es6, same cel jako funkcja.prototyp.połączenie i funkcja.prototyp.zastosuj)
- właściwości liczb i metody (już określone w pytaniu)
- metody matematyczne ( wiele z nich) (już określone w pytaniu)
- stałe
Myślę, że to wszystko, co mamy Bez --harmony
flagi.
Cechy z --harmony
flaga:
- Generatory
-
funkcje strzałek (bez potrzeby znacznika
--harmony_arrow_functions
w przeciwieństwie doio.js
) -
niech zmienne - tylko w
strict mode
- literały binarne i ósemkowe
-
String metody:
-
.contains () (została zastąpiona przez
includes()
w rzeczywistej specyfikacji ES6) - .startsWith()
- .endsWith()
- .codePointAt()
- .powtórz()
- .normalizacja()
- Sznurek.fromCodePoint
-
.contains () (została zastąpiona przez
-
Proxy (za flagą
--harmony-proxies
)
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ć
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.
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