Gleiche Variablennamen in Funktionen in JavaScript
Angenommen, sowohl außerhalb als auch innerhalb der Funktion gibt es eine Variable
num. In diesem Fall haben jegliche Änderungen
an der lokalen Variable num keinerlei
Auswirkung auf die globale Variable num:
let num = 1; // globale Variable
function func() {
let num = 2; // lokale Variable
console.log(num);
}
func(); // Funktion aufrufen, gibt 2 aus
console.log(num); // gibt 1 aus - globale Variable hat sich nicht geändert
Wenn wir jedoch vergessen, die lokale Variable
num mit let zu deklarieren,
dann wird innerhalb der Funktion keine lokale Variable num erstellt,
sondern einfach die globale Variable geändert:
let num = 1;
function func() {
num = 2; // Vergessen, let zu schreiben - ändern die äußere Variable
console.log(num);
}
func(); // Funktion aufrufen, gibt 2 aus
console.log(num); // gibt 2 aus - Variable hat sich geändert
Hier gibt es zwei mögliche Situationen: Entweder wollten wir tatsächlich
die globale Variable ändern (dann ist alles in Ordnung), oder wir haben
let vergessen und versehentlich
die globale Variable geändert.
Der zweite Fall ist ein schwer auffindbarer Fehler,
der zu unvorhersehbarem Verhalten des Skripts führt.
Deklarieren Sie daher immer eine neue Variable
mit let.
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);