Cadangan ECMA akan membawa rekod dan tupel ke JavaScript

JavaScript akan memperoleh jenis rekod dan nilai tuple di bawah proposal sebelum ECMA International, badan standard yang mengawasi bahasa pengaturcaraan yang popular untuk pengembangan web.

Rekod dan tupel akan memperkenalkan dua struktur data yang sangat tidak berubah pada JavaScript Record:, struktur seperti objek, dan Tuple, struktur seperti array. Draf rancangan dengan Jawatankuasa Teknikal ECMA 39, yang mengatur skrip ECMAS, standard yang mendasari JavaScript.

Rekod dan tupel, seperti dinyatakan dalam proposal, hanya boleh mengandungi primitif dan rekod dan tupel lain. Mereka dapat dianggap sebagai "primitif majemuk." Dan berdasarkan sepenuhnya pada primitif, mereka sangat tidak berubah. Seperti objek dan susunan, rekod dan tupel menyokong simpulan bahasa yang selesa untuk pembinaan, penggunaan, dan manipulasi, cadangan itu menyatakan. Mereka dibandingkan dengan isi dan bukan dengan identiti.

Mesin JavaScript mungkin melakukan pengoptimuman tertentu pada pembinaan, manipulasi, dan perbandingan catatan dan tupel, serupa dengan bagaimana rentetan dilaksanakan. Rekod dan tupel bertujuan untuk digunakan dan difahami dengan superset sistem jenis luaran seperti TypeScript atau Flow.

Pada masa ini, perpustakaan userland seperti immutable.js menerapkan konsep yang serupa. Cadangan ECMA sebelumnya untuk struktur data yang tidak berubah telah dicuba tetapi ditinggalkan kerana kerumitan dan kekurangan kes penggunaan yang mencukupi, cadangan itu menyatakan. Cadangan baru memperkenalkan perubahan yang ketara, yang menawarkan kelebihan kebolehgunaan berbanding perpustakaan pengguna seperti berikut:

  • Rekod dan tupel mudah dicari dalam debugger.
  • Tidak perlu percabangan tambahan untuk menulis perpustakaan generik yang menggunakan objek JS yang tidak berubah.
  • Kes penggunaan dielakkan di mana pembangun boleh menukar antara objek JS biasa dan struktur yang tidak berubah.

Rekod dan tupel berfungsi dengan baik dengan objek dan tatasusunan. Mereka boleh dibaca dengan cara yang sama seperti objek dan tatasusunan. Perbezaan utama berpusat pada kebolehubahan mendalam dan perbandingan berdasarkan nilai dan bukannya identiti. Juga, sintaks yang dicadangkan meningkatkan ergonomi penggunaan Recorddan Tuplekod secara signifikan .

Versi spesifikasi ECMAScript terbaru, versi 2020, diadopsi pada bulan Jun. Ini menampilkan kemampuan dalam bidang seperti pemuatan modul dan BigIntjenis baru .