So legen Sie eine Variable fest, die in JavaScript an eine Funktion als null übergeben wird

8

Angenommen, ich habe eine Funktion in JavaScript:

%Vor%

Wie setze ich das, wenn keine Variable übergeben wird, dann ist es standardmäßig Null?

    
Dmitry Paranyushkin 15.03.2014, 16:01
quelle

6 Antworten

7

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.

%Vor%

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.

Weitere Überlegungen

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:

%Vor%     
Ja͢ck 15.03.2014, 16:27
quelle
2

All das wird sicher funktionieren, aber das ist der einfachste Ansatz und ich benutze dies am meisten.

%Vor%     
mystic 15.03.2014 18:04
quelle
2

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:

%Vor%

... this || that ist bekannt als Kurzschlussauswertung .

    
KooiInc 15.03.2014 16:06
quelle
1

Sie können die Größe von arguments Variable,

überprüfen

Ссылка

%Vor%

Schauen Sie auch hier nach, ob die Variable null ist,

So ermitteln Sie, ob die Variable 'undefiniert' oder ' null '?

    
melc 15.03.2014 16:03
quelle
1

Testen Sie den Wert Ihrer Variablen wie folgt:

%Vor%     
R3tep 15.03.2014 16:05
quelle
1

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.

    
John 15.03.2014 16:12
quelle

Tags und Links