Javascript öffne Klammer in der gleichen Zeile

8

Ich erinnere mich, dass es eine Konvention / Empfehlung gibt, die öffnende Klammer in die selbe Zeile zu setzen, weil Javascript Semikolon oder etwas hinzufügt.

%Vor%

Aber ich finde keine relevante Quelle, um dies zu bestätigen / zu leugnen.

Stimmt das? Oder nur ein Mythos?

    
OscarRyz 24.02.2011, 16:31
quelle

6 Antworten

6

Dieser Post auf Elegant Code gibt eine Erklärung von automatischen Semikolon einfügen, aber in Bezug auf die Rückgabe von Objekten, nicht erklärt Funktionen.

    
David Ruttka 24.02.2011, 16:34
quelle
22

Das Problem, an das Sie denken, ist für return -Anweisungen.

%Vor%

Funktioniert gut, aber Folgendes nicht:

%Vor%

JavaScript fügt nach return ein Semikolon hinzu, indem das obige in:

umgewandelt wird %Vor%     
Rocket Hazmat 24.02.2011 16:35
quelle
6

Douglas Crockford gibt einen Grund für die Wahl des K & amp; R-Stils [1]:

"Ich benutze immer den K & amp; R Stil, setze das {am Ende einer Zeile statt der Vorderseite, weil es einen schrecklichen Designfehler in JavaScript return statement vermeidet.

Der Fehler, auf den er sich bezieht, ist, wie JavaScript die return-Anweisung in den folgenden zwei Szenarien anders behandelt:

%Vor%

... und:

%Vor%

Der erste gibt ein Objekt mit einer status -Eigenschaft zurück, während der zweite wegen Semikolon-Einfügung undefiniert zurückkehrt. "

[1] Douglas Crockford: JavaScript: Die guten Teile: Stil (S. 96)

    
Óscar López 24.02.2011 16:37
quelle
5

Der JavaScript-Garten enthält ein Kapitel über automatische Semikolon einfügen . Es gibt gute Beispiele, wenn Semikolons automatisch hinzugefügt werden:

  

JavaScript ist kein Semikolon   Sprache, es braucht in der Tat die   Semikola, um das zu verstehen   Quellcode. Deshalb das JavaScript   Parser fügt sie automatisch ein   wann immer es auf einen Parse-Fehler stößt   wegen eines fehlenden Semikolons.

In Ihrem Beispiel würde JavaScript aufgrund eines fehlenden Semikolons jedoch keinen Fehler finden.

    
Daff 24.02.2011 16:36
quelle
3

Es gibt kein Problem beim Deklarieren von Funktionen, aber Sie können Probleme beim Zurückgeben von Objekten bekommen:

%Vor%

Nach der return-Anweisung wird automatisch ein Semikolon eingefügt, das den Code unterbricht.

    
Adam Crossland 24.02.2011 16:37
quelle
-1

Es ist ein Mythos. Auf function blah() muss immer ein Ausdruckblock folgen, daher ist es egal, welchen Stil Sie verwenden. Der erste Stil ist einfach die am weitesten verbreitete Form.

    
RoToRa 24.02.2011 16:35
quelle

Tags und Links