JavaScript - Parameter Function

Selamat datang, para pemrogram yang sedang berkembang! Hari ini, kita akan melihat dunia menarik JavaScript function parameters. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya disini untuk mengarahkan Anda melalui topik esensial ini. Jadi, ambil minuman favorit Anda, rasa nyaman, dan mari kita mulai petualangan coding ini bersama!

JavaScript - Function Parameters

Function Parameters dan Arguments

mari kita mulai dengan dasar. Di JavaScript, fungsi seperti mesin kecil yang melakukan tugas tertentu. Kadang-kadang, mesin ini memerlukan input untuk melakukan pekerjaannya dengan baik. Itu di mana parameter masuk!

Apa itu Parameters?

Parameter adalah variabel yang tercantum dalam deklarasi fungsi. Mereka bertindak sebagai placeholder untuk nilai yang akan diberikan ke fungsi saat itu dipanggil.

Mari kita lihat contoh sederhana:

function greet(name) {
console.log("Hello, " + name + "!");
}

greet("Alice");

Dalam contoh ini, name adalah parameter. Ketika kita memanggil fungsi dengan greet("Alice"), "Alice" adalah argumen. Fungsi kemudian menggunakan argumen ini untuk personalisasi salam.

Parameter Ganda

Fungsi dapat memiliki beberapa parameter. Mari kita perluas fungsi salam kita:

function greet(name, time) {
console.log("Good " + time + ", " + name + "!");
}

greet("Bob", "morning");

Di sini, kita memiliki dua parameter: name dan time. Ketika memanggil fungsi, kita menyediakan dua argumen dalam urutan yang sama seperti parameter didefinisikan.

Default Parameters

Kadang-kadang, Anda mungkin ingin mengatur nilai default untuk parameter. Ini berguna saat Anda ingin fungsi bekerja bahkan jika argumen tidak diberikan:

function greet(name = "friend") {
console.log("Hello, " + name + "!");
}

greet(); // Output: Hello, friend!
greet("Charlie"); // Output: Hello, Charlie!

Dalam kasus ini, jika tidak ada argumen yang diberikan untuk name, ia default ke "friend".

Object Argument

Sekarang, mari bicarakan sesuatu yang lebih lanjut: object arguments. Ini adalah variabel lokal yang tersedia di semua fungsi. Itu berisi objek seperti array dari argumen yang diberikan ke fungsi.

function sumAll() {
let total = 0;
for (let i = 0; i < arguments.length; i++) {
total += arguments[i];
}
return total;
}

console.log(sumAll(1, 2, 3, 4)); // Output: 10

Fungsi ini dapat menerima sejumlah argumen dan menjumlahkannya semua. Sangat menarik, kan?

Passing Arguments by Value

Di JavaScript, saat Anda mempasskan tipe data primitif (seperti angka, string, atau boolean) ke fungsi, mereka dipasskan oleh nilai. Ini berarti bahwa fungsi menerima salinan nilai, bukan variabel asli.

function changeValue(x) {
x = 5;
console.log("Inside function: " + x);
}

let num = 10;
console.log("Before function call: " + num);
changeValue(num);
console.log("After function call: " + num);

Output:

Before function call: 10
Inside function: 5
After function call: 10

Seperti yang Anda lihat, mengubah x di dalam fungsi tidak mempengaruhi variabel asli num.

Passing Arguments by Reference

Objek, dari lainnya, dipasskan oleh referensi. Ini berarti bahwa jika Anda mengubah objek di dalam fungsi, objek asli juga akan diubah.

function changeName(person) {
person.name = "Jane";
console.log("Inside function: " + person.name);
}

let myPerson = {name: "John"};
console.log("Before function call: " + myPerson.name);
changeName(myPerson);
console.log("After function call: " + myPerson.name);

Output:

Before function call: John
Inside function: Jane
After function call: Jane

Di sini, mengubah properti name di dalam fungsi mempengaruhi objek asli myPerson.

Catatan Peringatan

Perilaku ini bisa sia-sia dan berbahaya. Itu memungkinkan Anda untuk mengubah struktur data kompleks secara efisien, tetapi itu juga bisa menyebabkan efek samping yang tidak diinginkan jika Anda tidak hati-hati. Selalu berhati-hati tentang apakah Anda bekerja dengan primitif atau objek!

Menggabungkan Semua

Ayoakhiri dengan contoh menarik yang menggabungkan beberapa konsep yang kita pelajari:

function createSuperHero(name, power = "flying", weaknesses) {
let hero = {
name: name,
power: power,
weaknesses: []
};

for (let i = 2; i < arguments.length; i++) {
hero.weaknesses.push(arguments[i]);
}

return hero;
}

let myHero = createSuperHero("Captain Awesome", "super strength", "kryptonite", "public speaking");
console.log(myHero);

Fungsi ini membuat objek superhero. Itu menggunakan parameter default, objek arguments, dan bekerja dengan baik primitif dan objek. Cobalah menjalankan itu dan lihat apa yang Anda dapatkan!

Kesimpulan

Selamat! Anda baru saja meningkatkan keterampilan JavaScript Anda dengan menguasai parameter fungsi. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba konsep ini dalam kode Anda sendiri.

Berikut adalah tabel rujukan cepat dari metode yang kita pelajari:

Metode Deskripsi
Parameter Dasar function name(param1, param2) {...}
Parameter Default function name(param = defaultValue) {...}
Object Argument arguments[i] untuk mengakses argumen
Pass by Value Berlaku untuk primitif (angka, string, boolean)
Pass by Reference Berlaku untuk objek dan array

Selamat coding, dan semoga fungsi Anda selalu berjalan tanpa bug!

Credits: Image by storyset