🍺 No Experimental Modules Warning - Node.js 14

NODEJS 14OPTIONAL CHAININGNULLISH COALESCING OPERATORINTL.DISPLAYNAMESCALENDARNUMBERINGSYSTEMINTL.DATETIMEFORMATJAVASCRIPT

Node.js 14 merupakan versi terbaru Node.js pada saat tulisan ini dibuat dan nantinya versi ini akan menjadi versi Node.js LTS yaitu pada Oktober 2020, selain versi LTS sebelumnya yaitu Node.js 12 dan Node.js 10.

Optional Chaining

“…permits reading the value of a property located deep within a chain of connected objects without having to expressly validate that each reference in the chain is valid.” - MDN

Artinya anda diijinkan menge-test suatu properti pada suatu object tanpa harus secara explisit menuliskan test apakah properti tersebut valid atau tidak. Kalau properti yang memakai operator ini ternyata tidak ada pada suatu object maka secara otomati akan mengembalikan nilai undefined.

Nullish Coalescing Operator (??)

“…a logical operator that returns its right-hand side operand when its left-hand side operand is null or undefined, and otherwise returns its left-hand side operand.” - MDN

(null/undefined) ? left operand : right operand

Kalau sisi kiri berniali null ataupun undefined maka akan mengembalikan apapun di right-operand dan sebaliknya akan mengembalikan apapun di left-operand jika sisi kiri tidak null atau tidak undefined. Contoh penulisan operator ini seperti berikut

console.log(mall.lokasi?.name ?? "Abaikan");

Optional-Chaining

Intl.DisplayNames

Fitur ini sangat penting jika aplikasi yang dibuat diharuskan mendukung multi-bahasa Intl.DisplayNames menjaga konsistensi dari translasi nama bahasa, area dan skrip (bahasa tulis) yang dipakai pada suatu negara.

DisplayNames

👉 CLDR — untuk mengetahui kode dari bahasa, area dan skrip.

calendar & numberingSystem di Intl.DateTimeFormat

DateTimeFormat

Agak lega karena penulisan format sistem penomoran tanggal Arab, Jawa ataupun Bali sudah didukung oleh Node.js, artinya untuk projek-projek dengan target tertentu maka akan sangat semakin lebih mudah diterapkan hanya saja untuk sistem penulisan kalender yang bisa kita pakai (setidaknya sesuai kultur kita) masih terbatas pada pilihan Masehi atau Hijriyah (Islamic) - MDN

Untuk Aksara Bali sepertinya belum mendukung rendering yang benar baik pada chrome maupun pada Node.js entah karena font yang kurang tepat di install pada sistem OS yang saya pakai ataukah memang secara internal belum mendukung untuk itu.

DateTimeFOrmat Chrome

Google Chrome v81.0.4044.122

No Experimental Modules Warning

Di Node.js 13 telah dihilangkan option atau flag —experimental-modules hanya saja pesan peringatan di keluaran masih ada ExperimentalWarning: The ESM module loader is experimental. tetapi pada release Node.js 14 pesan peringatan ini telah di hilangkan.

Perlu dicatat bahwa meskipun flag dan warning message telah dihilangkan tetapi dukungan ESM pada Node.js masih dalam tahap eksperimen, meskipun begitu penghilangan tersebut memberikan arah dan niat yang pasti bahwa dukungan ESM dipastikan akan menuju ke tahap stabil.

Tentang ESM silahkan baca dokumentasi.

Lainnya

Ada beberapa fitur advanced yang juga muncul di Node.js versi 14 seperti fitur eksperimental Async Local Storage API yg menyediakan dukungan penyimpanan (state) pada async callback atau promise, fitur eksperimental WASI artiny anda bisa memakai aplikasi WebAssembly didalam lingkungan Node.js 🎉