Materi
Sintaks spread, tiga titik di depan sebuah array atau objek, menuangkan isinya ke tempat lain. [...a, ...b] membuat array baru dari dua array, dan { ...lama, harga: 9000 } membuat objek baru yang menyalin semua property lama lalu menimpa harga. Bila dua objek punya property bernama sama, yang ditulis belakangan yang menang. Dengan pola ini, data asli tidak ikut berubah, dan itu penting ketika objek yang sama dipakai di beberapa tempat.
Destrukturisasi melakukan kebalikannya: mengambil isi ke variabel terpisah. const { nama, kota } = pelanggan membuat dua variabel dari dua property. Nilai bawaan ditulis dengan tanda sama dengan dan dipakai bila property-nya undefined, nama bisa diganti dengan titik dua, dan ...sisa mengumpulkan property yang tidak disebut. Bentuk yang sama dipakai di parameter fungsi, sehingga fungsi bisa menerima satu objek pengaturan dan langsung membongkarnya.
const pengiriman = { resi: "JN-771", kurir: "Pos", berat: 2 };
const salinan = { ...pengiriman, berat: 3 }; // pengiriman.berat tetap 2
const { resi, kurir: jasa, asuransi = false, ...lain } = salinan;
// resi "JN-771", jasa "Pos", asuransi false, lain { berat: 3 }
const [pertama, ...berikutnya] = [5, 8, 13]; // 5 dan [8, 13]
function label({ resi, kurir = "Belum dipilih" }) {
return `${resi} (${kurir})`;
}