2016-07-06 11 views
0

ich irgendwie interessiert bin, um herauszufinden, wie die jQuery-Code funktioniert, aber sobald ich die jQuery-Datei geöffnet, stolperte ich dies auf:Bedeutung der ersten 5 Zeilen Code jQuery

! function(a, b) { 
    "object" == typeof module && "object" == typeof module.exports ? 
    module.exports = a.document ? b(a, !0) : function(a) { 
     if (!a.document) throw new Error("jQuery requires a window with a document"); 
     return b(a) 
    } : b(a) 
}("undefined" != typeof window ? window : this, function(a, b) { 
/*contains the rest of the code */ 
}); 

Diese Syntax ist im Gegensatz zu allem, was ich jemals gesehen habe, oder es ist einfach zu kompliziert und weit, um es herauszufinden. Ich habe das gesamte Google durchsucht, aber kein Ergebnis gefunden. Was heißt das?

Genauer gesagt:

  • Was bedeutet dieser Code dienen?
  • Warum werden zwei ? Operatoren hintereinander ohne eine : dazwischen verwendet? (Zeilen 2, 3)
  • Was ist der Zweck des !-Operators vor der Funktion in der ersten Zeile und warum wird es auch vor 0 in Zeile 3 verwendet? Wenn 0false ist, bedeutet !0true?
+0

'Zustand? expre1: expre2' es heißt [ternary operator] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) – Gintoki

+0

Ich kenne den ternären Operator. In der zweiten Zeile nach 'module.exports?' Folgt ein weiteres '?'. –

+2

Ich glaube, du solltest einen unkomprimierten prüfen. Alles, was Sie wissen wollen, ist gut kommentiert: https://code.jquery.com/jquery-1.12.4.js – MMhunter

Antwort

2

Wenn Sie versucht, die Distributionsdatei von jQuery zu öffnen, haben Sie wahrscheinlich minimieren und verschleierten Code, über die Lesbarkeit gefunden. Sie könnten besser dran sein, wenn Sie versucht haben, aus dem Quellcode auf Github zu lernen, genauer gesagt, das von Ihnen gepostete Snippet scheint this Datei zu sein. Es ist alles schön kommentiert

+0

Danke, dass Sie mich @Rando wissen lassen. Ich dachte, nur ich könnte diesen Code nicht lesen. –

Verwandte Themen