Parameter dan Argumen
Memberi input ke fungsi lewat parameter, memahami argumen, default parameter, dan rest parameter.
Parameter vs argumen
Parameter adalah "slot" input yang dideklarasikan saat membuat fungsi. Argumen adalah nilai nyata yang dikirim saat fungsi dipanggil. Analoginya: parameter seperti kolom isian di formulir, argumen seperti tulisan yang kamu isi di kolom itu.
function sapa(nama) { // nama = parameter
console.log("Halo, " + nama + "!");
}
sapa("Rizky"); // "Rizky" = argumen
sapa("Sinta"); // fungsi sama, input bedaBanyak parameter
Fungsi bisa menerima banyak parameter, dipisah koma. Urutannya penting:
function tambah(a, b) {
return a + b;
}
console.log(tambah(3, 4)); // 7
console.log(tambah(10, 20)); // 30Default parameter
Kalau argumen tidak dikirim, parameter bisa punya nilai default agar fungsi tetap berjalan:
function sapa(nama = "tamu") {
console.log("Halo, " + nama + "!");
}
sapa(); // "Halo, tamu!"
sapa("Rizky"); // "Halo, Rizky!"Ini berguna untuk opsi yang sifatnya opsional, misalnya konfigurasi dengan nilai umum.
Parameter tidak terbatas dengan rest
Tidak tahu berapa banyak argumen yang akan datang? Pakai rest parameter (tiga titik):
function jumlahkan(...angka) {
let total = 0;
for (let n of angka) total += n;
return total;
}
console.log(jumlahkan(1, 2, 3)); // 6
console.log(jumlahkan(5, 5, 5, 5)); // 20Rest mengumpulkan semua argumen sisa menjadi satu array.
Catatan teknis: Kalau argumen kurang dari jumlah parameter, parameter yang kosong bernilai undefined. Ini sering jadi sumber NaN misterius: tambah(5) menghasilkan 5 + undefined = NaN. Default parameter atau validasi input bisa mencegahnya.
arguments: cara lama
Sebelum rest parameter ada, fungsi memakai object khusus bernama arguments untuk mengakses semua argumen:
function lama() {
console.log(arguments.length);
console.log(arguments[0]);
}
lama("a", "b", "c"); // 3, lalu "a"arguments terlihat seperti array tapi bukan array asli (tidak punya map atau forEach). Di kode modern, pakai rest parameter (...args) yang menghasilkan array beneran dan lebih jelas dibaca.
function modern(...args) {
return args.map(a => a * 2);
}
console.log(modern(1, 2, 3)); // [2, 4, 6]Kamu cukup tahu arguments ada karena masih muncul di kode lama dan tutorial lama. Untuk kode baru, selalu pakai rest parameter.
Kesimpulan
Parameter membuat fungsi fleksibel: satu fungsi, banyak kemungkinan input. Kuasai default dan rest parameter karena keduanya membuat fungsi lebih tahan terhadap variasi pemakaian.