Globale Variablen in Funktionen in JavaScript

In JavaScript (in anderen Sprachen ist es meistens nicht so) sind Variablen, die außerhalb einer Funktion definiert sind, innerhalb dieser Funktion sichtbar. Solche Variablen werden globale Variablen genannt. Sehen wir uns ein Beispiel an:

javascriptlet num = 1; // Variable außerhalb der Funktion

function func() {
  console.log(num); // Variable num ist innerhalb der Funktion sichtbar
}

func(); // gibt 1 aus

Tatsächlich muss die Variable nicht vor der Definition der Funktion, sondern vor ihrem Aufruf definiert sein:

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

let num = 1; // Variable außerhalb der Funktion
func();      // gibt 1 aus

Wenn man den Wert der Variable ändert und danach jedes Mal die Funktion aufruft - wird console.log jedes Mal unterschiedliche Ergebnisse ausgeben:

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

let num; // deklariere die Variable

num = 1; // setze Wert auf 1
func();  // gibt 1 aus

num = 2; // setze Wert auf 2
func();  // gibt 2 aus

Wenn wir mehrere Funktionen haben, dann ist die globale Variable in jeder dieser Funktionen verfügbar:

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

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

let num = 1;

func1(); // gibt 1 aus
func2(); // gibt 1 aus

Wenn in einer der Funktionen Änderungen an der globalen Variable vorgenommen werden, dann ändert sich diese Variable in allen Funktionen, die diese Variable verwenden:

javascriptfunction func1() {
  console.log(num);
  num++; // ändere die globale Variable
}

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

let num = 1;

func1(); // gibt 1 aus
func2(); // gibt 2 aus

Da jede der Funktionen leicht die globale Variable ändern kann, ist ihre Verwendung ein Nährboden für schwer auffindbare Fehler. Aus diesem Grund sollte die Verwendung globaler Variablen im Skript auf ein Minimum reduziert werden. Idealerweise sollte es sie überhaupt nicht geben oder nur in minimaler Anzahl.

Задание 1

Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:

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

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

Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:

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

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

Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:

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

let num;

num = 1;
func();

num = 2;
func();