Christian Schubert: Best Practice zur Reinitialisierung von Variablen

Beitrag lesen

warum "undefined"?

Da eine Variable, bevor ihr ein Wert zugewiesen wird, eben undefined ist.

Ich halte es für völlig ausreichend, vor einem Anweisungsblock alle Variablen, die darin verwendet werden, auf den jeweils gewünschten Wert zu setzen. Im Fall der Modularisierung durch Funktionen kann man das Prinzip noch weiter ins Detail treiben: Beim Funktionsaufruf genau die Werte (Ausdrücke) übergeben, die man tatsächlich haben möchte.

Wenn man prophylaktisch alle beteiligten Variablen auf Defaultwerte setzt (z.B. undefined), ist das IMO eher ein Zeichen für schlechen Programmierstil.

Live long and pros healthy,
 Martin

Du hast schon recht, ich überanalysiere die Sache wahrscheinlich und schieße mit Spatzen auf Kanonen (oder umgekehrt).

Prinzipiell wird allen undefinierten Variablen per Funktionsaufruf ja ein Ursprungswert zugewiesen; i.e. bleibt vielleicht irgendwo ein Counter im global Namespace mit einem unerwünschten Wert "übrig" (der sich deswegen dort befindet, weil z.B. verschiedene Teile des Programms unabhängig voneinander darauf Zugriff haben müssen), so wird selbiger Counter bei Aufruf der erstrelevanten Funktion sowieso zurückgesetzt, nach dem Schema

let einCounter;

function erstrelevanteFunktion() {
	einCounter = 0; // wird hier wieder zurückgesetzt
	// etc.
}

function andereFunktion() {
	einCounter++;
	// etc.
}

Dir noch einen schönen Abend, Christian. ✌️