Angenommen, ich habe eine Funktion in JavaScript:
%Vor%Wie setze ich das, wenn keine Variable übergeben wird, dann ist es standardmäßig Null?
JavaScript ist nicht sehr wählerisch, wenn es um die Anzahl der erforderlichen Funktionsargumente geht, wenn Sie eine Funktion aufrufen. Alle Argumente, die in der Deklaration erwähnt, aber nicht übergeben werden, werden auf den Typ undefined
gesetzt.
Zum Beispiel:
%Vor%Um Standardwerte festzulegen, gibt es mindestens drei Optionen:
%Vor% Der obige Wert gibt den Wert von foo
aus, wenn es truthy ist, oder 'default value'
, andernfalls.
Dies wird den Wert von foo
ausgeben, wenn es nicht undefined
oder 'default value'
anders ist.
Schließlich können Sie die Anzahl der übergebenen Argumente zählen:
%Vor% Dies gibt den Wert von foo
(unabhängig von seinem Typ) aus, wenn ein Argument übergeben wurde.
Obwohl undefined
seit ES5 nicht beschreibbar ist , nicht Alle Browser werden so wachsam sein, um dies zu erzwingen. Es gibt zwei Alternativen, die Sie verwenden könnten, wenn Sie sich darüber Gedanken machen:
Es sollte so einfach sein wie:
%Vor%Im Allgemeinen können Sie solchen Parametern Standardwerte zuweisen:
%Vor% Oder, wenn Sie eine Verteidigung gegen 0
, false
usw. benötigen (und @Ketola ), könntest du so etwas kochen wie:
... this || that
ist bekannt als Kurzschlussauswertung .
Sie können die Größe von arguments
Variable,
Schauen Sie auch hier nach, ob die Variable null ist,
So ermitteln Sie, ob die Variable 'undefiniert' oder ' null '?
Oder eine freundlichere (IMO) Option wäre:
%Vor%Wenn Sie anfangen, viele Parameter zu übergeben, aber die Funktion flexibel sein wollen, können Sie Folgendes tun:
%Vor%Anstelle von
%Vor%Das falsche ist erforderlich und nervtötend. Das Ablegen eines Abjekts ist viel effizienter.
Tags und Links javascript