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:
let 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:
function 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:
function 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:
function 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:
function 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.
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
let num = 1;
function func() {
console.log(num);
}
func();
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
let num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
function func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();