Function
Function
Function adalah sebuah blok kode yang akan dijalankan ketika dipanggil. Function dapat menerima input dan mengembalikan output. Function dapat digunakan untuk menghindari duplikasi kode, karena jika ada kode yang sama di beberapa tempat, kita dapat menggunakan function untuk menggantikannya.
Ada 3 cara untuk mendefinisikan function di Javascript. Pertama dengan menggunakan function declaration, kedua dengan menggunakan function expression, dan ketiga dengan menggunakan arrow function.
Function Declaration
Function declaration adalah cara mendefinisikan function dengan kata kunci function
. Contoh:
function sayHello() {
console.log("Hello");
}
sayHello(); // Hello
Function Expression
Function expression adalah cara mendefinisikan function dengan menyimpannya ke dalam sebuah variabel. Contoh:
const sayHello = function () {
console.log("Hello");
};
sayHello(); // Hello
Arrow Function
Arrow function adalah cara mendefinisikan function dengan menggunakan tanda panah =>
. Contoh:
const sayHello = () => {
console.log("Hello");
};
sayHello(); // Hello
Function Parameter
Function parameter adalah sebuah variabel yang digunakan sebagai input untuk function. Contoh:
function sayHello(name) {
console.log(`Hello ${name}`);
}
sayHello("John"); // Hello John
Function parameter bisa lebih dari satu. Contoh:
function add(a, b) {
console.log(a + b);
}
add(1, 2); // 3
Function Return
Function return adalah sebuah keyword yang digunakan untuk mengembalikan nilai dari function. Contoh:
function add(a, b) {
return a + b;
}
const result = add(1, 2);
console.log(result); // 3
Scope
Scope adalah sebuah konsep yang digunakan untuk menentukan akses sebuah variabel. Ada 2 jenis scope di Javascript, yaitu global scope dan local scope. Global scope adalah scope yang bisa diakses dari mana saja, sedangkan local scope adalah scope yang hanya bisa diakses dari dalam function.
Contoh global scope:
const name = "John";
function sayHello() {
console.log(`Hello ${name}`);
}
sayHello(); // Hello John
Contoh local scope:
function sayHello() {
const name = "John";
console.log(`Hello ${name}`);
}
sayHello(); // Hello John
console.log(name); // ReferenceError: name is not defined
Closure
Closure adalah sebuah function yang mengakses variabel di luar function tersebut. Contoh:
function sayHello() {
const name = "John";
return function () {
console.log(`Hello ${name}`);
};
}
const hello = sayHello();
hello(); // Hello John
Penggunaan closure yang paling umum adalah untuk membuat private variable. Contoh:
function counter() {
let count = 0;
return function () {
count++;
console.log(count);
};
}
const increment = counter();
increment(); // 1
increment(); // 2
increment(); // 3
Callback
Callback adalah sebuah function yang dikirimkan sebagai parameter ke function lain. Contoh:
function sayHello(name) {
console.log(`Hello ${name}`);
}
function getName(callback) {
const name = "John";
callback(name);
}
getName(sayHello); // Hello John
Contoh lain callback
function add(a, b) {
return a + b;
}
function multiply(a, b) {
return a * b;
}
function calculate(a, b, callback) {
return callback(a, b);
}
const result1 = calculate(1, 2, add);
console.log(result1); // 3
const result2 = calculate(1, 2, multiply);
console.log(result2); // 2