Lesen Crockfords Die Elemente des JavaScript-Stils Ich bemerke, er bevorzugt Variablen wie folgt zu definieren:
%Vor%Was ist, wenn diese Methode einen Vorteil bietet:
%Vor%Offensichtlich erfordert letzteres mehr Typisierung, aber abgesehen von der Ästhetik frage ich mich, ob es einen Leistungsvorteil gibt, der durch die Definition mit dem früheren Stil gewonnen wurde.
Neben Ästhetik und Download-Footprint kann ein weiterer Grund sein, dass die var
-Anweisung hissen unterliegt. Dies bedeutet, dass unabhängig davon, wo eine Variable in einer Funktion platziert wird, diese an den Anfang des Bereichs verschoben wird, in dem sie definiert ist.
Beispiel:
%Vor%Wird interpretiert in:
%Vor% Aus diesem Grund und wegen des Funktionsumfangs, den nur JavaScript bietet, empfiehlt Crockford, alle Variablen im zu deklarieren oben in der Funktion in einer einzigen var
-Anweisung, um zu ähneln, was wirklich passieren wird, wenn der Code tatsächlich ausgeführt wird.
Da JavaScript im Allgemeinen auf den Client-Browser heruntergeladen wird, ist die Kürze tatsächlich ein wertvolles Attribut. Je mehr Bytes Sie herunterladen müssen, desto langsamer wird es. Also ja, es gibt einen Grund neben der Ästhetik, wenn nicht eine massive.
Ähnlich sehen Sie Leute, die kürzere Variablennamen länger bevorzugen.
Ich persönlich kümmere mich nicht darum, Leerzeichen zu minimieren, da es Minimierungen gibt, die solche Dinge für Sie erledigen können (zum Beispiel in YUI ), und das Fehlen von Einrückungen und Abständen führt zu weniger wartungsfähigem Code.
Kein Unterschied in der Semantik und kein messbarer Unterschied in der Leistung. Schreiben Sie, was am deutlichsten ist.
Für einfache Beispiele wie:
%Vor%Das prägnante Konstrukt mit einer Aussage ist wahrscheinlich ein Gewinn für die Lesbarkeit. Auf der anderen Seite können Sie dies viel zu weit nehmen und beginnen, die Hälfte Ihres Programms in eine einzelne var-Anweisung zu schreiben. Hier ist ein zufälliges Beispiel aus der jQuery-Quelle:
%Vor% Ich finde dies (keineswegs das schlimmste Beispiel) ein wenig geschmacklos. Längere Beispiele können ziemlich schwer nach oben gelesen werden (warten Sie, ich war in einer var-Anweisung?) Und Sie können die Klammern zählen, um herauszufinden, was ein mehrzeiliger Ausdruck ist und was nur ein erweiterter var
-Block ist / p>
Ich glaube, dass er alle Variablen als die erste Anweisung in einer Funktion deklariert (Sie werden bemerken, dass JSLint darüber klagt, wenn Sie es verwenden und nicht in der ersten Zeile deklarieren). Dies liegt an JavaScript-Einschränkungen der Bereichsdeklaration (oder Macken). Crockford betont dies als gute Praxis für wartbaren JavaScript-Code. Das zweite Beispiel deklariert sie oben, aber nicht in der ersten Ausführungsanweisung. Persönlich sehe ich keinen Grund als, warum man das erste über das zweite vorzieht, aber dem ersten zu folgen, erzwingt, dass alle Variablen erklärt werden, bevor irgendetwas anderes in der Funktion getan wird.
David hat recht, je größer das Skript ist, desto mehr Zeit braucht es zum Herunterladen, aber in diesem Fall ist der Unterschied zwischen den beiden minimal und kann mit YUI-Komprimierung usw. behandelt werden.
Es ist eine persönliche Programmierstilwahl.
Auf der einen Seite gibt es Lesbarkeit , in dem jede Variablen-Deklaration in einer separaten Zeile platziert wird, was es offensichtlich macht, was vor sich geht.
Auf der anderen Seite gibt es Abkürzung , in der Sie die Übertragung einiger zusätzlicher Bytes über das Netzwerk eliminieren. Es ist im Allgemeinen nicht genug, um sich Sorgen zu machen, es sei denn, Sie haben mit langsamen Netzwerken oder begrenztem Speicher auf der Seite des Client-Browsers zu tun.
Die Kürze wird von Seiten des Programmierers auch als Faulheit bezeichnet, was ein Grund dafür ist, dass viele Puristen es vermeiden.
Es kommt alles auf persönlichen Geschmack oder eine Reihe von Style-Guides, folgt Ihr Entwicklungsteam. Wenn Sie JavaScript selbst bereitstellen, komprimieren oder minimieren Sie normalerweise Ihre Skripts in einer langen Zeichenfolge in einer einzigen Datei. Also das ganze Sie-sind-Speichern-Bytes-und-Ihre-Skripte-Download-schneller Argument ist, na ja, kein Argument:)
Normalerweise deklariere ich meine Variablen wie folgt: (ein Stil, den Sie nicht erwähnt haben)
%Vor%Tags und Links javascript