Es geht nicht um den Whitespace, es geht um das automatische Einfügen von Semikolons durch JavaScript.
Die ECMAScript-Spezifikation sagt
Bestimmte ECMAScript-Anweisungen (leer Anweisung, variable Anweisung, Ausdruckserklärung, Do-While Anweisung, Continue-Anweisung, Pause Anweisung, return-Anweisung und throw Anweisung) muss mit beendet werden Semikolons. Solche Semikolons können immer erscheinen explizit im Quelltext. Der Bequemlichkeit halber jedoch, wie z Semikolons können weggelassen werden Quelltext in bestimmten Situationen. Diese Situationen werden beschrieben durch sagen, dass Semikolons sind automatisch in die Quelle eingefügt Code-Token-Stream in diesen Situationen.
Dies bedeutet, dass Ihr Code
%Vor%wird als
übersetzt %Vor%Damit ist FOO nach der Ausführung der Funktion undefiniert.
Für Ihren anderen Code wird JS kein Semikolon einfügen und es wird korrekt funktionieren. JS wird ein Semikolon nach Ihrem literalen Objekt einfügen und es sollte gut funktionieren. [EDIT: Korrektur wie von kagnax angegeben]
Dies bedeutet, dass Sie Ihre Anweisungen immer mit Semikolon beenden sollten. Wenn das JS-Engine-Semikolon eingefügt wird, können sehr kleine Fehler auftreten, deren Debuggen Stunden in Anspruch nimmt. Sie können ein Tool wie JSLint verwenden, das Sie vor fehlenden Semikolons warnt.
Tags und Links javascript jquery syntax whitespace formatting