Globalne promenljive u funkcijama u JavaScriptu
U JavaScriptu (u drugim jezicima najčešće nije tako) promenljive definisane izvan funkcije biće vidljive unutar te funkcije. Takve promenljive nazivaju se globalnim. Pogledajmo na primeru:
let num = 1; // promenljiva izvan funkcije
function func() {
console.log(num); // promenljiva num je vidljiva unutar funkcije
}
func(); // ispisaće 1
Zapravo, promenljiva mora biti definisana ne pre definicije funkcije, već pre njenog poziva:
function func() {
console.log(num);
}
let num = 1; // promenljiva izvan funkcije
func(); // ispisaće 1
Ako menjamo vrednost promenljive i nakon toga
svaki put pozivamo funkciju - console.log će svaki
put ispisivati različite rezultate:
function func() {
console.log(num);
}
let num; // deklarišemo promenljivu
num = 1; // postavljamo vrednost 1
func(); // ispisaće 1
num = 2; // postavljamo vrednost 2
func(); // ispisaće 2
Ako imamo više funkcija, onda će globalna promenljiva biti dostupna u svakoj od tih funkcija:
function func1() {
console.log(num);
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // ispisaće 1
func2(); // ispisaće 1
Ako se u jednoj od funkcija dese promene globalne promenljive, onda će se ta promenljiva promeniti u svim funkcijama koje koriste tu promenljivu:
function func1() {
console.log(num);
num++; // menjamo globalnu promenljivu
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // ispisaće 1
func2(); // ispisaće 2
Pošto bilo koja funkcija lako može promeniti globalnu promenljivu, njihovo korišćenje predstavlja rasadnik teško uočljivih grešaka. Iz tog razloga, korišćenje globalnih promenljivih u skriptu treba svesti na minimum. Poželjno je da ih uopšte nema ili da ih ima najmanji mogući broj.
Odredite, bez pokretanja koda, šta će biti ispisano u konzoli:
let num = 1;
function func() {
console.log(num);
}
func();
Odredite, bez pokretanja koda, šta će biti ispisano u konzoli:
let num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Odredite, bez pokretanja koda, šta će biti ispisano u konzoli:
function func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();