Globale variabler i funksjoner i JavaScript
I JavaScript (i de fleste andre språk er det som oftest ikke slik) vil variabler definert utenfor en funksjon være synlige innenfor denne funksjonen. Slike variabler kalles globale. La oss se på et eksempel:
let num = 1; // variabel utenfor funksjonen
function func() {
console.log(num); // variabelen num er synlig inni funksjonen
}
func(); // vil skrive ut 1
Egentlig må variabelen være definert ikke før definisjonen av funksjonen, men før den kalles:
function func() {
console.log(num);
}
let num = 1; // variabel utenfor funksjonen
func(); // vil skrive ut 1
Hvis du endrer verdien av variabelen og deretter
kaller funksjonen hver gang - vil console.log hver
gang gi forskjellige resultater:
function func() {
console.log(num);
}
let num; // deklarerer variabelen
num = 1; // setter verdien til 1
func(); // vil skrive ut 1
num = 2; // setter verdien til 2
func(); // vil skrive ut 2
Hvis vi har flere funksjoner, vil den globale variabelen være tilgjengelig i hver av disse funksjonene:
function func1() {
console.log(num);
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // vil skrive ut 1
func2(); // vil skrive ut 1
Hvis endringer skjer i en av funksjonene med den globale variabelen, vil denne variabelen endres i alle funksjoner som bruker denne variabelen:
function func1() {
console.log(num);
num++; // endrer den globale variabelen
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // vil skrive ut 1
func2(); // vil skrive ut 2
Siden enhver av funksjonene enkelt kan endre den globale variabelen, representerer bruken deres et tillflyktssted for vanskelig fangbare feil. Av denne grunn bør bruken av globale variabler i skriptet reduseres til et minimum. Det er ønskelig at de enten ikke eksisterer i det hele tatt, eller at det er et minimalt antall av dem.
Bestem, uten å kjøre koden, hva som vil bli skrevet ut i konsollen:
let num = 1;
function func() {
console.log(num);
}
func();
Bestem, uten å kjøre koden, hva som vil bli skrevet ut i konsollen:
let num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Bestem, uten å kjøre koden, hva som vil bli skrevet ut i konsollen:
function func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();