Emrat e njëjtë të variablave në funksione në JavaScript
Le të themi se si jashtë funksionit ashtu edhe brenda ka një variabël
num. Në këtë rast, çdo ndryshim
me variablin lokal num nuk
ndikon në asnjë mënyrë në variablin global num:
let num = 1; // variabël global
function func() {
let num = 2; // variabël lokal
console.log(num);
}
func(); // therasim funksionin, do të shfaqet 2
console.log(num); // do të shfaqet 1 - variabli global nuk ndryshoi
Por, nëse harrojmë të deklarojmë variablin lokal
num përmes let, atëherë brenda funksionit
nuk do të krijohet variabli lokal num,
por thjesht do të ndryshojë variabli global:
let num = 1;
function func() {
num = 2; // harruam të shkruajmë let - po ndryshojmë variablin e jashtëm
console.log(num);
}
func(); // therasim funksionin, do të shfaqet 2
console.log(num); // do të shfaqet 2 - variabli ndryshoi
Këtu mund të ketë dy situata: ose ne vërtet
donim të ndryshonim variablin global (atëherë
gjithçka është në rregull), ose kemi harruar let dhe aksidentalisht
ndryshuam variablin global.
Rasti i dytë është një gabim i vështirë për t'u kapur,
që çon në sjellje të paparashikueshme të skriptit.
Prandaj gjithmonë, kur futni një variabël të re deklarojeni
atë përmes let.
Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);