Fungsi JavaScript tidak akan melakukan pemeriksaan apa pun pada nilai parameter (argumen).
Section Artikel
Parameter Fungsi dan Argumen
Di tutorial sebelumnya, kita telah mempelajari bahwa fungsi dapat memiliki parameter:
function functionName(parameter1, parameter2, parameter3) { // code to be executed } |
Parameter fungsi adalah nama yang tercantum dalam definisi fungsi.
Argumen fungsi adalah nilai nyata yang diteruskan ke (dan diterima oleh) fungsi.
Aturan Parameter
Definisi fungsi JavaScript tidak menentukan tipe data untuk parameter.
Fungsi JavaScript tidak melakukan pemeriksaan jenis pada argumen yang diteruskan.
Fungsi JavaScript tidak memeriksa jumlah argumen yang diterima.
Parameter Default
Jika fungsi dipanggil dengan argumen yang hilang (kurang dari yang dideklarasikan), nilai yang hilang diatur menjadi tidak ditentukan (undefined).
Terkadang hal ini dapat diterima, tetapi terkadang lebih baik untuk menetapkan nilai default ke parameter.
Contoh:
<!DOCTYPE html> <html> <body> <p> Menyetel nilai default ke parameter fungsi. </p> <p id="demo"></p> <script> function myFunction(x, y) { if (y === undefined) { y = 2; } return x * y; } document.getElementById("demo").innerHTML = myFunction(4); </script> </body> </html>
ECMAScript 2015 memungkinkan nilai parameter default dalam deklarasi fungsi:
<!DOCTYPE html> <html> <body> <p> Menyetel nilai default ke parameter fungsi (y = 2). </p> <p id="demo"></p> <script> function myFunction(x, y = 2) { return x * y; } document.getElementById("demo").innerHTML = myFunction(4); </script> </body> </html>
Objek Argumen
Fungsi JavaScript memiliki objek bawaan yang disebut objek argumen.
Objek argumen berisi array argumen yang digunakan saat fungsi dipanggil.
Dengan cara ini Anda cukup menggunakan fungsi untuk menemukan (misalnya) nilai tertinggi dalam daftar angka:
Contoh
<!DOCTYPE html> <html> <body> <p> Menemukan angka terbesar. </p> <p id="demo"></p> <script> function findMax() { var i; var max = -Infinity; for(i = 0; i < arguments.length; i++) { if (arguments[i] > max) { max = arguments[i]; } } return max; } document.getElementById("demo").innerHTML = findMax(4, 5, 6); </script> </body> </html>
Atau buat fungsi untuk menjumlahkan semua nilai input:
<!DOCTYPE html> <html> <body> <p> Jumlah semua argumen: </p> <p id="demo"></p> <script> function sumAll() { var i; var sum = 0; for(i = 0; i < arguments.length; i++) { sum += arguments[i]; } return sum; } document.getElementById("demo").innerHTML = sumAll(1, 123, 500, 115, 44, 88); </script> </body> </html>
Jika suatu fungsi dipanggil dengan terlalu banyak argumen (lebih dari yang dideklarasikan), argumen ini dapat dicapai dengan menggunakan objek argumen.
Argumen Dilewati oleh Nilai
Parameter, dalam pemanggilan fungsi, adalah argumen fungsi.
Argumen JavaScript diteruskan oleh nilai: Fungsi hanya mengetahui nilai, bukan lokasi argumen.
Jika suatu fungsi mengubah nilai argumen, maka tidak mengubah nilai asli parameter.
Perubahan argumen tidak terlihat (tercermin) di luar fungsi.
Objek Dilewati oleh Referensi
Dalam JavaScript, referensi objek adalah nilai.
Karenanya, objek akan berperilaku seperti yang diteruskan oleh referensi:
Jika suatu fungsi mengubah properti objek, maka mengubah nilai aslinya.
Perubahan properti objek terlihat (tercermin) di luar fungsi.