Variabel Global dalam Fungsi di JavaScript
Di JavaScript (di bahasa lain biasanya tidak seperti ini) variabel yang didefinisikan di luar fungsi, akan terlihat di dalam fungsi tersebut. Variabel seperti ini disebut global. Mari kita lihat contohnya:
let num = 1; // variabel di luar fungsi
function func() {
console.log(num); // variabel num terlihat di dalam fungsi
}
func(); // menampilkan 1
Sebenarnya variabel harus didefinisikan bukan sebelum pendefinisian fungsi, tetapi sebelum pemanggilannya:
function func() {
console.log(num);
}
let num = 1; // variabel di luar fungsi
func(); // menampilkan 1
Jika kita mengubah nilai variabel dan setelah itu
setiap kali memanggil fungsi - console.log setiap
kali akan menampilkan hasil yang berbeda:
function func() {
console.log(num);
}
let num; // deklarasikan variabel
num = 1; // atur nilai menjadi 1
func(); // menampilkan 1
num = 2; // atur nilai menjadi 2
func(); // menampilkan 2
Jika kita memiliki beberapa fungsi, maka variabel global akan dapat diakses di setiap fungsi tersebut:
function func1() {
console.log(num);
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // menampilkan 1
func2(); // menampilkan 1
Jika di salah satu fungsi terjadi perubahan pada variabel global, maka variabel tersebut akan berubah di semua fungsi yang menggunakan variabel itu:
function func1() {
console.log(num);
num++; // ubah variabel global
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // menampilkan 1
func2(); // menampilkan 2
Karena salah satu fungsi dapat dengan mudah mengubah variabel global, maka penggunaannya merupakan sarang bagi bug yang sulit dilacak. Oleh karena itu, penggunaan variabel global dalam skrip harus diminimalisir. Diinginkan agar tidak ada sama sekali atau jumlahnya sangat minimal.
Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:
let num = 1;
function func() {
console.log(num);
}
func();
Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:
let num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:
function func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();