Terakhir diperbaharui: Feb 17, 2021
Destructuring, Spread Syntax, Rest Parameter
Konsep destructuring, rest parameter dan spread syntax akan sering ditemui dalam sebuah React project.
Destructuring
Destructuring adalah javascript expression yang digunakan untuk menyimpan value dari suatu array atau object ke dalam dalam variable yang berbeda.
Jika kita ingin menyimpan properties dari sebuah object ke dalam variable maka kita bisa melakukannya seperti ini:
1const blueDino = {2 firstName: 'brachio',3 lastName: 'saurus',4 address: 'Jakarta'5};67const firstName = blueDino.firstName;8const address = blueDino.address;910console.log(firstName);11console.log(address);
Kita bisa melakukan hal yang sama dengan menggunakan object destructuring.
1const blueDino = {2 firstName: 'brachio',3 lastName: 'saurus',4 address: 'Jakarta'5};67const {firstName, address} = blueDino; // object destructuring89console.log(firstName);10console.log(address);
Jika kita ingin mengubah nama variable dengan nama yang lain kita bisa tulis seperti ini.
1const blueDino = {2 firstName: 'brachio',3 lastName: 'saurus',4 address: 'Jakarta'5};67const {firstName: name, address: city} = blueDino;89console.log(name); // brachio10console.log(city); // Jakarta
Array Destructuring
Destructuring juga bisa digunakan untuk array.
1const dinoGroup = ['t-rex', 'brachio', 'tricera'];23const [redDino, blueDino] = dinoGroup;45console.log(redDino);6console.log(blueDino);
Spread Syntax dan Rest Parameter
Keduanya sama-sama menggunakan three dots(...).
Lalu apa bedanya dan apa fungsinya?
Spread Syntax (...)
Spread syntax digunakan untuk memisahkan semua item pada iterable object seperti array menjadi item tersendiri.
Penggunaan
- Clone array / object
1const dinoGroup = ['t-rex', 'brachio', 'tricera'];23const newDinoGroup = [...dinoGroup];
- Merge array / object
1const dinoGroup1 = ['t-rex', 'brachio', 'tricera'];2const dinoGroup2 = ['allo', 'stego'];34const newDinoGroup = [...dinoGroup1, ...dinoGroup2];
- Menambahkan item baru ke array
1const dinoGroup1 = ['t-rex', 'brachio', 'tricera'];2const dinoGroup2 = ['stego', ...dinoGroup1];
Rest Parameter (...)
Rest Parameter adalah kebalikan dari Spread Syntax, Rest Parameter adalah parameter yang akan mengumpulkan item-item yang terpisah menjadi satu.
Sebagai contoh, function dibawah ini adalah function yang akan menjumlahkan semua argumen yang diterima.
1const add = (numA, numB, numC) => {2 return numA + numB + numC;3};45const result = add(1, 2, 3);67console.log(result); // 6
Kita bisa menambahkan rest parameter pada function di atas.
1const add = (...nums) => {2 let total = 0;34 for (let num of nums) {5 total += num;6 }78 return total;9};1011add(1, 2, 3);1213const result = add(1, 2, 3);1415console.log(result); // 6
Karena semua argumen akan dijadikan ke dalam satu array maka kita bisa menambah argument sebanyak mungkin.
1add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Yang perlu diperhatikan adalah rest parameter harus menjadi parameter yang terakhir.
Jika kita menaruh rest parameter selain di bagian akhir maka kita akan mendapatkan error.
1const add = (numA, ...nums, numB) => { // error2 ...3}