Variablat globale në funksione në JavaScript
Në JavaScript (në shumicën e gjuhëve të tjera zakonisht nuk është kështu) variablat e përcaktuar jashtë funksionit, do të jenë të dukshme brenda atij funksioni. Variabla të tillë quhen globale. Le të shohim një shembull:
let num = 1; // variabël jashtë funksionit
function func() {
console.log(num); // variabla num është e dukshme brenda funksionit
}
func(); // do të shfaqë 1
Në fakt, variabla duhet të jetë e përcaktuar jo përpara përcaktimit të funksionit, por përpara thirrjes së tij:
function func() {
console.log(num);
}
let num = 1; // variabël jashtë funksionit
func(); // do të shfaqë 1
Nëse ndryshoni vlerën e variablës dhe më pas
e thirrni funksionin çdo herë - console.log çdo
herë do të shfaqë rezultate të ndryshme:
function func() {
console.log(num);
}
let num; // deklarojmë variablën
num = 1; // caktojmë vlerën 1
func(); // do të shfaqë 1
num = 2; // caktojmë vlerën 2
func(); // do të shfaqë 2
Nëse kemi disa funksione, atëherë variabla globale do të jetë e disponueshme në secilin prej këtyre funksioneve:
function func1() {
console.log(num);
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // do të shfaqë 1
func2(); // do të shfaqë 1
Nëse në një nga funksionet ndodhin ndryshime me variablën globale, atëherë ajo variabël do të ndryshojë në të gjitha funksionet që përdorin këtë variabël:
function func1() {
console.log(num);
num++; // ndryshojmë variablën globale
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // do të shfaqë 1
func2(); // do të shfaqë 2
Meqenëse çdo funksion lehtësisht mund të ndryshojë variablën globale, përdorimi i tyre përfaqëson një çerdhe gabimesh të vështira për t'u kapur. Për këtë arsye, përdorimi i variablave globale në skript duhet të reduktohet në minimum. Është e dëshirueshme që ato të mos ekzistojnë fare ose të jenë në sasinë më minimale.
Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:
let num = 1;
function func() {
console.log(num);
}
func();
Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:
let num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:
function func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();