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:
javascriptlet 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:
javascriptlet 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:
javascriptlet num = 1;
function func() {
num = 2;
}
func();
console.log(num);
Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:
javascriptlet num = 1;
function func() {
let num = 2;
}
func();
console.log(num);