Nama Variabel yang Sama dalam Fungsi di JavaScript
Misalkan baik di luar fungsi maupun di dalamnya terdapat variabel
num. Dalam kasus ini, perubahan apa pun
pada variabel lokal num tidak akan
mempengaruhi variabel global num:
let num = 1; // variabel global
function func() {
let num = 2; // variabel lokal
console.log(num);
}
func(); // memanggil fungsi, akan menampilkan 2
console.log(num); // akan menampilkan 1 - variabel global tidak berubah
Namun, jika kita lupa mendeklarasikan variabel lokal
num dengan let, maka di dalam fungsi
tidak akan terbuat variabel lokal num,
melainkan hanya variabel global yang akan diubah:
let num = 1;
function func() {
num = 2; // lupa menulis let - mengubah variabel eksternal
console.log(num);
}
func(); // memanggil fungsi, akan menampilkan 2
console.log(num); // akan menampilkan 2 - variabel telah berubah
Di sini bisa ada dua situasi: entah kita benar-benar
ingin mengubah variabel global (maka
tidak masalah), atau kita lupa let dan secara tidak sengaja
mengubah variabel global.
Kasus kedua adalah kesalahan yang sulit dilacak,
yang mengarah pada perilaku skrip yang tidak terduga.
Oleh karena itu, selalu deklarasikan variabel baru
Anda dengan let.
Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);