Globale variable i funktioner i JavaScript

I JavaScript (i de fleste andre sprog er det som regel ikke tilfældet) vil variable, der er defineret udenfor en funktion, være synlige inde i denne funktion. Sådanne variable kaldes globale. Lad os se på et eksempel:

javascriptlet num = 1; // variabel udenfor funktion

function func() {
  console.log(num); // variablen num er synlig inde i funktionen
}

func(); // udskriver 1

Faktisk skal variablen være defineret ikke før definitionen af funktionen, men før dens kald:

javascriptfunction func() {
  console.log(num);
}

let num = 1; // variabel udenfor funktion
func();      // udskriver 1

Hvis man ændrer variablens værdi og derefter hver gang kalder funktionen - vil console.log hver gang vise forskellige resultater:

javascriptfunction func() {
  console.log(num);
}

let num; // deklarerer variablen

num = 1; // sæt værdien til 1
func();  // udskriver 1

num = 2; // sæt værdien til 2
func();  // udskriver 2

Hvis vi har flere funktioner, vil den globale variabel være tilgængelig i hver af disse funktioner:

javascriptfunction func1() {
  console.log(num);
}

function func2() {
  console.log(num);
}

let num = 1;

func1(); // udskriver 1
func2(); // udskriver 1

Hvis der i en af funktionerne foretages ændringer af den globale variabel, så vil denne variabel ændre sig i alle funktioner, der bruger denne variabel:

javascriptfunction func1() {
  console.log(num);
  num++; // ændrer den globale variabel
}

function func2() {
  console.log(num);
}

let num = 1;

func1(); // udskriver 1
func2(); // udskriver 2

Da enhver af funktionerne nemt kan ændre den globale variabel, repræsenterer deres brug et lejested for svært opdagelige fejl. Af denne grund skal brugen af globale variable i scriptet reduceres til et minimum. Det er ønskeligt, at de slet ikke eksisterer eller at der var et absolut minimum antal.

Задание 1

Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:

javascriptlet num = 1;
    
function func() {
  console.log(num);
}

func();
Задание 2

Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:

javascriptlet num = 1;
    
function func() {
  console.log(num);
}

num = 2;
func();
Задание 3

Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:

javascriptfunction func() {
  console.log(num);
}

let num;

num = 1;
func();

num = 2;
func();