2017-11-20 2 views
2

Ich bin gerade auf eine Funktion gestoßen, die einen Parameter akzeptiert, der eigentlich 'undefiniert' heißt. Es ist so etwas wie diese:JavaScript - undefiniert als Parameter übergeben * name *?

(function($,undefined) { 
    // Do something 
})(jQuery); 

Entweder ich werde verrückt, oder es gibt keinen logischen Grund dafür, hier zu sein, wie, na ja, nicht definiert nicht definiert ist undefiniert. Kann mir bitte jemand bestätigen? Vielen Dank.

+0

Danke an alle für die Antworten und um darauf hinzuweisen, dass es ein Duplikat ist - tut mir leid. Ich hatte zunächst eine Suche, aber alles, was ich fand, war über undefiniert beim Aufruf der Funktion. – ClarkeyBoy

Antwort

3

Das ist ein klassischer Trick ist es, eine undefined Variable haben gegen zu überprüfen, in der Regel:

if (someVar === undefined) {} 

// instead of: 

if (typeof someVar === 'undefined') {} 

Beachten Sie, dass der Wrapper IIFE kein zweites Argument nicht besteht, so dass die undefined Parameter effektiv undefined.

+0

Was ist der Nachteil von 'if (typeof someVar === 'undefined') {}'? –

+1

nur länger zu tippen und in der Regel nicht durch JS-Minifier zu verkürzen. – ghybs

+0

@ghybs kann der Wert von 'undefined' nicht geändert werden und deshalb' if (typeof someVar === 'undefiniert') {} 'wird gelegentlich empfohlen? – dimwittedanimal

Verwandte Themen