Introduction
Di JavaScript, kita sering kali mendefinisikan fungsi dengan parameter yang wajib diisi. Namun, dalam beberapa kasus, kita ingin memberikan nilai default untuk parameter-parameter tertentu yang tidak diterima atau tidak didefinisikan oleh pemanggil fungsi. Fitur ini dapat diimplementasikan dengan menggunakan default parameters. Default parameters memungkinkan kita untuk menetapkan nilai yang akan digunakan jika argumen yang bersangkutan tidak diberikan. Dalam artikel ini, kita akan melihat contoh-contoh penggunaan default parameters dalam JavaScript.
1. Pengertian Default Parameters
Default parameters adalah nilai yang diberikan kepada parameter fungsi jika argumen yang sesuai tidak diteruskan saat pemanggilan fungsi. Fitur ini diperkenalkan di ECMAScript 6 (ES6) dan memudahkan kita dalam menangani kasus di mana nilai default lebih masuk akal, tanpa memerlukan logika tambahan.
Sintaks Default Parameters:
Jika parameter
tidak diberikan saat fungsi dipanggil, maka defaultValue
akan digunakan.
2. Contoh Dasar Penggunaan Default Parameters
Mari kita lihat contoh dasar penggunaan default parameters.
Pada contoh di atas:
- Ketika kita memanggil fungsi
greet("Alice")
, parametername
diberi nilai “Alice”. - Namun, saat kita memanggil
greet()
tanpa argumen, parametername
akan otomatis diberi nilai default yaitu"Guest"
.
3. Default Parameters dengan Ekspresi atau Perhitungan
Default parameters juga dapat berisi ekspresi atau perhitungan. Artinya, Anda dapat menetapkan nilai default yang bersifat dinamis, tergantung pada perhitungan atau nilai lain.
Contoh:
Pada contoh ini, jika parameter b
tidak diberikan, maka nilainya akan diambil dari nilai a
. Jadi, jika hanya satu parameter yang diberikan (misalnya multiply(5)
), maka b
secara otomatis diberi nilai yang sama dengan a
, yaitu 5, dan hasilnya adalah 25.
4. Menggunakan Default Parameters dengan Objek
Default parameters juga bisa digunakan dengan parameter objek, yang sangat berguna ketika bekerja dengan fungsi yang menerima objek sebagai argumen.
Contoh:
Dalam contoh ini:
- Ketika kita memanggil
createUser({ name: "Alice", age: 25 })
, objek yang lengkap diteruskan, dan fungsi akan menggunakan nilai yang diberikan. - Ketika kita hanya mengirimkan
{ name: "Bob" }
, nilai default untukage
digunakan. - Ketika tidak ada argumen yang diberikan, objek kosong
{}
digunakan, dan nilai default untuk kedua parameter digunakan.
5. Menggunakan Default Parameters dengan Fungsi Rekursif
Default parameters juga dapat sangat berguna dalam fungsi rekursif, di mana parameter tambahan digunakan untuk menghitung nilai secara bertahap. Default parameters akan memastikan bahwa parameter yang tidak diisi pada pemanggilan pertama akan memiliki nilai yang valid.
Contoh:
Pada contoh di atas, parameter result
memiliki nilai default 1
jika tidak diberikan. Fungsi factorial
dipanggil secara rekursif, dan pada setiap pemanggilan, nilai result
diperbarui.
6. Mengatasi Nilai undefined
dengan Default Parameters
Kadang-kadang, kita ingin membedakan antara nilai yang tidak diberikan dan nilai yang benar-benar undefined
. Default parameters membantu kita untuk menangani kasus di mana undefined
diberikan sebagai argumen, tetapi kita tetap ingin menggunakan nilai default jika parameter tidak diberikan.
Contoh:
Pada contoh ini, meskipun undefined
diberikan sebagai argumen, nilai default tetap diterapkan. Jika tidak ada argumen yang diberikan, nilai default juga digunakan.
Kesimpulan
Default parameters di JavaScript adalah fitur yang sangat berguna untuk menangani nilai yang tidak diberikan dalam suatu fungsi. Dengan menggunakan default parameters, Anda dapat membuat kode lebih bersih dan lebih efisien tanpa perlu menulis logika tambahan untuk memeriksa keberadaan argumen. Fitur ini juga memungkinkan kita untuk menetapkan nilai default yang lebih dinamis dengan ekspresi atau perhitungan, dan sangat bermanfaat saat bekerja dengan objek atau fungsi rekursif.
Dengan memahami dan memanfaatkan default parameters, Anda dapat menghindari penggunaan nilai undefined
yang tidak diinginkan dan menulis kode yang lebih robust dan fleksibel.