Diese Spezifikation wurde als Reaktion auf den funktionalen Programmierstil von JavaScript und die Tatsache formuliert, dass Unternehmen beim Codieren stark auf jQuery angewiesen sind.
Es ist verboten, eval, with und caller zu verwenden (strenge Anforderungen von ecma262 v5 beachten). eval darf beim Verschlüsseln nur maschinell generiert werden.
Das Schlüsselwort var muss zur Deklaration von Variablen hinzugefügt werden, außer in Anweisungen wie for(;;)-Schleifen sind kontinuierliche Deklarationen grundsätzlich nicht zulässig. Da die Effizienz einer kontinuierlichen Deklaration nicht so hoch ist wie die einer separaten Deklaration, kann es leicht passieren, dass sie versehentlich dem globalen Bereich ausgesetzt wird.
Konstante, alles in Großbuchstaben.
Variablennamen dürfen kein Pinyin verwenden und englische Wörter sind in der Kamel-Schreibweise organisiert.
Wo immer möglich sollten Semikolons hinzugefügt werden (grundsätzlich außer bei „function“, „if“, „switch“, „try“ und „while“), um Komprimierungsfehler aufgrund dieses Problems zu verhindern.
Benutzerdefinierte Klassen können nur für die Erstellung von UI-Bibliotheken verwendet werden. Private benutzerdefinierte Klassen sind im Geschäftscode nicht zulässig.
Pseudoobjekte (String, Number, Boolean) dürfen grundsätzlich nicht verwendet werden und ihre Literale werden direkt verwendet.
Array und Object dürfen grundsätzlich nicht verwendet werden und ihre Literale [] und {} werden direkt verwendet.
Gehen Sie vorsichtig damit um, um Bindungsfehler zu vermeiden und auf das Fenster zu verweisen. Es wird empfohlen, dies als Referenz zu verwenden.
Wenn Sie die Funktion selbst aufrufen möchten, ist es verboten, benannte Funktionsausdrücke in die erste Zeile der Zielfunktion zu schreiben. Für Details googeln Sie bitte „Named Function Expressions Revealed“:
var self = arguments.callee;
Es ist verboten, den Prototyp nativer Objekte zu erweitern, insbesondere Object.prototype.
Es ist verboten, Ereignisse an ein bestimmtes Element auf der Seite zu binden, d. h. an den folgenden Codestil:
<a href="http://www.php1.cn/">简明现代魔法</a>
Es ist verboten, die bedingten Kommentare des IE zu verwenden, die einmal verschwinden komprimiert.
var f = function () { /*@cc_on if (@_jscript) { return 2* @*/ 3; /*@ } @*/ };
Verbietet Funktionsdeklarationen innerhalb von Blöcken. Für Details googeln Sie bitte „Named Function Expressions Revealed“.
if (x) { //ng function foo() {} } if (x) { var foo = function() {} }
Die For-In-Schleife kann nur für Objekte verwendet werden.
Es ist verboten, mehrzeilige Zeichenfolgen zu verwenden, da beim Kompilieren Leerzeichen am Anfang der Zeile nicht ignoriert werden können; Leerzeichen nach „“ führen zu seltsamen Fehlern, obwohl die meisten Skript-Engines diese Schreibmethode unterstützen. Es handelt sich jedoch nicht um eine Standardspezifikation von ECMAScript.
var myString = 'A rather long string of English text, an error message \ actually that just keeps going and going -- an error \ message to make the Energizer bunny blush (right through \ those Schwarzenegger shades)! Where was I? Oh yes, \ you\'ve got an error and all the extraneous whitespace is \ just gravy. Have a nice day.';
String-Splicing-HTML-Code ist nicht zulässig. Bitte verwenden Sie eine Front-End-Vorlage oder eine Back-End-Vorlage.
Verwenden Sie für String-Literale ' statt ".
Für Kommentare verwenden Sie JSDoc.
Jede Zeile sollte nicht zu lang sein. Nachdem Sie bitte einen Code geschrieben haben Verwenden Sie eine IDE, um es zu bearbeiten.
Fügen Sie benutzerdefinierte Variablen zu den Elementen hinzu und verwenden Sie das Präfix „data-“, um eine Verbindung mit dem HTML5-Mechanismus „data-*“ herzustellen.
Verbieten Sie jQuery Die Verwendung von mehr als einer Zeile ist sehr schwer zu lesen. Bei der Auswahl von
-Elementen werden hauptsächlich Pseudoklassen für untergeordnete Elemente und Pseudoklassen verwendet. nth-child,: first,:eq,:gt)
Um nach nahegelegenen Elementknoten in einem vorhandenen jQuery-Objekt zu suchen, wird nicht empfohlen, die mehrstufige Suche zu verwenden, sondern die zugehörige Traversalfunktion < zu verwenden 🎜>
JavaScript sollte so weit wie möglich in einer externen JS-Datei platziert werden, um die Komprimierung und das Caching zu erleichtern Standardfunktionen werden gegenüber Nicht-Standardfunktionen bevorzugt (sofern von einer Klassenbibliothek bereitgestellt). Verwenden Sie zuerst die Funktionen in der Klassenbibliothek). . Event-Proxys wie Mousewheel können grundsätzlich nicht verwendet werden. Belassen Sie keine Code-Snippets in JS-Dateien, die nicht mehr verwendet werden Der von jQuery referenzierte Klassenname sollte als Präfix js_ verwendet werden, um andere zu warnen, dass sie ihn beim Anpassen des Stils versehentlich gelöscht haben.$("XXXX").find("YYYY").find("ZZZZ"); //ng $("XXXX").next() //或者nextUntil, nextAll, prev, prevAll, prevUntl, children, closest, .siblings
JS-Code muss im $$-Namespace-Objekt platziert werden, und die Ausführung aller Funktionen beginnen mit der Hauptfunktion. 🎜>Das Format zum Abrufen von JSON-Daten aus dem Hintergrund ist vereinheitlicht als
Um die Anforderungs- und Ausführungsrückrufe zu trennen, verwenden wir die Funktion dependBy, wodurch mehrere Rückrufe effektiv vermieden werden Schichten verschachtelter Rückrufe und macht den Code verständlicher.Wenn Sie gute Vorschläge haben, können Sie sie mir gerne mitteilen Einige Ratschläge.
Das Obige ist der Inhalt der JavaScript-Team-Programmierspezifikationen (m.sbmmt.com). >