Spesifikasi ECMAScript 2020 untuk JavaScript disetujui

ECMAScript 2020, versi terbaru dari spesifikasi resmi yang mendasari JavaScript, secara resmi disetujui oleh ECMA International, dan komite teknis ECMA mengawasi spesifikasinya, pada 16 Juni. 

ECMAScript 2020 memperkenalkan beberapa fitur mulai dari import() fasilitas baru  untuk memuat modul hingga BigInt tipe baru  untuk bekerja dengan bilangan bulat presisi arbitrer. 

Fitur khusus yang diperkenalkan oleh ECMAScript 2020 meliputi:

  • import()Modul "seperti fungsi" memuat sintaks untuk mengimpor modul secara asinkron dengan penentu dinamis. Proposal menambahkan import(specifier)bentuk sintaksis, yang bertindak dalam banyak hal seperti fungsi. Ini mengembalikan janji untuk objek namespace modul dari modul yang diminta, yang dibuat setelah mengambil, membuat instance, dan mengevaluasi dependensi modul, bersama dengan modul itu sendiri. Surat  specifierwasiat diinterpretasikan dengan cara yang sama seperti dalam importdeklarasi. Meskipun specifiermerupakan string, belum tentu string literal; dengan demikian, kode suka import(`./language-packs/${navigator.language}.js`)akan berfungsi. Ini tidak mungkin dengan importdeklarasi biasa . Dengan rencananya,import() diusulkan untuk bekerja di kedua modul dan skrip, memberikan kode skrip titik masuk asinkron yang mudah ke dunia modul dan memungkinkannya untuk mulai menjalankan kode modul.
  • BigInt,nomor primitif baru untuk bekerja dengan bilangan bulat presisi arbitrer. BigIntdapat mewakili angka yang lebih besar dari dua pangkat ke-53, angka terbesar yang dapat diwakili JavaScript secara andal dengan Numberprimitif. A BigIntdibuat dengan menambahkan nke akhir integer atau dengan memanggil konstruktor.
  • The matchAllmetode untuk string, untuk menghasilkan sebuah iterator untuk semua objek yang cocok dihasilkan oleh ekspresi reguler global. Alasan di balik proposal ini adalah jika developer memiliki string dan sticky atau ekspresi reguler global dengan beberapa grup penangkap, developer mungkin ingin mengulang melalui semua kecocokan, yang saat ini terdapat beberapa opsi tetapi dengan batasan. String#matchAll mengatasi masalah dengan memberikan akses ke semua grup penangkap dan tidak secara nyata mengubah objek ekspresi reguler yang dimaksud.
  • Promise.allSettled, kombinator Janji baru yang tidak mengalami korsleting. Ini mengembalikan sebuah promise yang dipenuhi dengan larik snapshot status promise, tetapi hanya setelah promise asli diselesaikan, yaitu telah dipenuhi atau ditolak.
  • globalThis, menyediakan cara universal untuk mengakses nilai global this.
  • export * as ns from ‘module’Sintaks khusus untuk digunakan dalam modul.
  • Peningkatan standarisasi for-inurutan pencacahan, yang sebagian menentukan urutan pencacahan di JavaScript.
  • import.meta,objek yang dihuni host dalam Modul yang dapat berisi informasi kontekstual. Ini berfungsi sebagai metaproperti JavaScript, yang menyimpan metadata khusus host tentang modul saat ini.
  • Penggabungan nullish, operator pemilihan nilai untuk penanganan kasus yang lebih baik yang melibatkan akses properti. Ini adalah fitur sintaks untuk meningkatkan kerja dengan nilai "nullish" ( nullatau tidak ditentukan).
  • Rantai opsional, akses properti dan operator pemanggilan fungsi yang akan mengalami hubungan pendek jika nilai untuk mengakses / memanggil nullish. 

Pembaruan terakhir untuk ECMAScript, ECMAScript 2019, menampilkan kemampuan seperti prototype.flatMap untuk array bersarang.