unknown: Namespace?

Beitrag lesen

Ich habe öfters den Fall, daß ich die optionalen Parameter mit einem (wahren) Defaultwert vorbelege.

Mag sein.

Und wenn der Parameter wirklich nicht übergeben wurde, dann kann man das am einfachsten mit typeof() ermitteln.

Wieso mit typeof()? Wieso ist das einfacher als
if (param === undefined)

Wenn der Parameter undefined ist, *dann* ist ist klar, daß er nicht übergeben wurde - auch nicht mit false null oder sonstwas als Wert ...

Ob der Parameter nicht übergeben wurde ist aber nur interessant, WENN er im Defaultfall ungleich 0, false, null vorbelegt sein soll. Davon gehe ich aber erst mal aus. Sonst bleibt natürlich nichts anderes übrig, als zu prüfen, ob der Parameter übergeben wurde.

... und da kann man diese Syntax dann eigentlich auch einheitlich immer und überall verwenden, sofern nicht explizit was dagegen spricht.

kann man, muß man aber nicht.

Man kann vieles machen, um Fehler zu vermeiden. Viele schreiben auch
if (KONSTANTE == variable)
um versehentliche Zuweisungen zu vermeiden, was meiner Meinung nach die Lesbarkeit zerstört(wobei ich auch zugebe, daß in diesem Fall deine Variante deutlicher lesbar ist) - es hat halt alles Vor- und Nachteile. Fehler werden immer auftreten. Und wenn man sich bewusst ist, was man macht, vermeidet man meiner Meinung nach mehr Fehler als mit starren Regeln wie "diesen Ausdruck sollte man vermeiden, weil er in offensichtlichen Konstellationen zu Fehlern führt".