Rilis stabil baru Node.js (0.12) baru-baru ini mendarat dengan mesin JavaScript v8 Google yang ditingkatkan, v3.28.73 .
Fitur ECMAScript 6 apa yang saat ini hadir di Node.js, tanpa menggunakan --harmony
flag?
Saya telah memeriksa beberapa situs yang mengklaim mencantumkan fitur ES 6 tetapi semuanya tampaknya ketinggalan zaman - yang paling penting, tabel ini ( Pembaruan: sekarang diperbarui dengan status Node.js saat ini pada 0,12 ), karena beberapa fitur terdaftar sebagai membutuhkan --harmony
bendera sementara saya menemukan beberapa dari mereka diaktifkan secara default (Peta, Set, Simbol, untuk beberapa nama). Pembaruan : Tabel spesifik node sejak itu telah tersedia
Juga, mencoba untuk google informasi ini semata-mata untuk mesin v8 memberikan informasi yang terlalu up-to-date - rilis v8 saat ini adalah 4.2. * , Yang cukup maju dari apa yang Node.js gunakan.
Harapan saya adalah bahwa pertanyaan ini (dan jawabannya) akan menjadi ringkasan komprehensif tentang apa fitur ES 6 sekarang tersedia untuk pengembang Node.js.
Fitur ES 6 diaktifkan di Node.js 0.12 Saat ini saya tahu:
- Maps, Sets / WeakMaps, WeakSets
- Simbol
- Object.observe
- Janji
- Jumlah
- .isInteger
- .isSafeInteger
- .isNaN
- .EPSILON
- .MIN_SAFE_INTEGER
- .MAX_SAFE_INTEGER
- Matematika
- .clz32
- .imul
- .tanda
- .log10
- .log2
- .log1p
- .expm1
- .tongkat pendek
- .sinh
- .tanh
- .acosh
- .asinh
- .atanh
- .trunc
- .fround
- .cbrt
- .hypot
sumber
Jawaban:
Fitur tanpa
--harmony
bendera:Saya pikir hanya itu yang kita miliki tanpa
--harmony
bendera.Fitur dengan
--harmony
bendera:--harmony_arrow_functions
bendera berbeda denganio.js
)strict mode
Metode string:
includes()
dalam spesifikasi ES6 yang sebenarnya)Proxy (di belakang
--harmony-proxies
bendera)Saya pikir itu saja. Mungkin jika saya lupa sesuatu - nanti saya tambahkan ke daftar.
sumber
--harmony
bendera. :)--harmony
? Seperti pada${varname}
sintaks string centang belakang ?--harmony
flag, atau tanpa itu. Tetapiiojs
mendukung mereka tanpa perlu bendera apa pun.Fitur ES6 mengalir ke Node secara bertahap. Node menggunakan Google V8 sebagai mesin JavaScript. Fitur yang didukung di Node berarti pertama-tama harus diimplementasikan di V8 dan kemudian tim Node harus memasukkannya di Node.js.
Tim di Google merilis versi baru V8 kira-kira setiap enam minggu, dan kemudian terserah tim Node untuk menggunakannya.
Daftar fitur bahasa yang dikuratori secara manual bagus tetapi dapat menjadi usang dengan cepat. Node 0.12 tidak lagi berubah, tetapi biasanya daftar yang dikuratori secara manual menjadi usang segera setelah Node versi baru diluncurkan.
Berikut adalah dua cara alternatif untuk memeriksa fitur apa yang didukung oleh versi Node, tanpa bergantung pada daftar statis. Untuk membaca lebih lanjut dan contoh-contoh lebih rinci tentang penggunaan ini, Anda dapat memeriksa "Bagaimana cara memeriksa apakah Node.js mendukung fitur bahasa ES 6"
# 1 Mudah - tabel kompatibilitas
Daftar yang dibuat secara dinamis yang mengandalkan tes kecil untuk mengonfirmasi keberadaan fitur bahasa tetap lebih baik. Salah satu daftar populer tersebut adalah kangax.github.io/compat-table/es6/. Kami hanya tertarik pada fitur Node, sehingga Anda dapat menggunakannya
http://node.green
yang memanfaatkan data yang sama dengan situs kangax.
# 2 Hard - backtrack versi V8
Node menggunakan mesin V8, jadi menentukan versi V8 mana yang termasuk dalam Node memberi tahu kami apa fitur bahasa ES6 yang didukung. Anda dapat mengetahui versi V8 yang dibundel dengan Node
node -p process.versions.v8
.Kemudian menggunakan sumber daya proyek V8 Google Anda dapat menemukan fitur mana yang diterapkan di setiap versi. Proyek V8 menyimpan pelacak masalah di mana Anda dapat menemukan ES6 + di luar fitur yang ditandai dengan label harmoni .
sumber