Heim  >  Artikel  >  Web-Frontend  >  Funktionsfreigabe, die es ermöglicht, JavaScript auseinanderzubrechen

Funktionsfreigabe, die es ermöglicht, JavaScript auseinanderzubrechen

小云云
小云云Original
2018-02-09 13:37:051046Durchsuche

Dieser Artikel führt Sie hauptsächlich in die Verwendung funktionaler Programmierung ein, um sich von JavaScript zu lösen. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber, um einen Blick darauf zu werfen. Ich hoffe, es kann allen helfen.

Über DHTML

DHTML ist die Abkürzung für Dynamic HTML, also dynamisches HTML (eine Anwendung unter der Standard Universal Markup Language), also relativ traditionelles statisches HTML. Ein Konzept zur Erstellung von Webseiten auf Chinesisch. Das sogenannte dynamische HTML (kurz DHTML) ist eigentlich keine neue Sprache, sondern lediglich eine Integration von HTML, CSS und clientseitigen Skripten, das heißt, eine Seite enthält HTML+CSS+Javascript (oder andere clientseitige). Skripte), wobei CSS- und Client-Skripte direkt auf die Seite geschrieben werden, anstatt auf verwandte Dateien zu verlinken.

Zu dieser Zeit entwickelte sich JavaScript langsam und wurde hauptsächlich zur Formularvalidierung verwendet. Daher war es nicht so beliebt wie heute und erregte nicht viel Aufmerksamkeit. Man kann sagen, dass es nur ein Sahnehäubchen ist. Sie müssen sicherstellen, dass Ihre Anwendung auch nach der Deaktivierung von JavaScript im Browser weiterhin normal verwendet werden kann. Später erschienen Frameworks nacheinander: jQuery, Knockout, Angular, React, Vue usw.

In ähnlicher Weise entwickelt sich auch JavaScript rasant weiter. Wir verwenden ES6 erst seit kurzer Zeit, und jetzt haben die Leute ES7 fast übersprungen und angefangen, über ES8 zu sprechen.

Und wir haben viele Alternativen, wie TypeScript, CoffeScript, ClojureScript, ELM usw.

Wir wurden von zu vielen Frameworks und Sprachen überwältigt und es ist schwierig, den Überblick zu behalten und sie alle zu beherrschen.

Falscher Weg

Als JavaScript ausgereifter wurde, drangen die Konzepte der objektorientierten Programmierung (OOP) ein, und ich liebte es.

Ich habe angefangen, alle verschiedenen Möglichkeiten zum Erstellen von Klassen auszuprobieren und bin endlich in der Lage, die Vererbung richtig zu verwenden. Ich sagte mir: JavaScript sieht langsam wirklich wie eine Sprache aus!

Erst viele Jahre später entdeckte ich jedoch, dass OOP das schlechteste von JavaScript eingeführte Design ist!

Ich versuche, mein Verständnis von C# auf JavaScript zu übertragen. Anfangs war ich voller Erwartungen, aber später fand ich, dass es zu kompliziert und hirnintensiv war.

Das liegt hauptsächlich daran, dass sich die prototypische Vererbung von JavaScript von der von C# unterscheidet. Ich bin es gewohnt, jeden Tag eleganten Code wie console.log(this) zu schreiben. Aber was nun? Wenn ich mich versehentlich nicht an die Regeln halte, bekomme ich Albträume. Private Methoden und private Werte müssen einen Unterstrich vor ihrem Namen haben, und sogar Abschlüsse müssen verwendet werden, um die Privatsphäre zu gewährleisten.

Daher hat nicht nur OOP viele Probleme verursacht, sondern auch die Hinzufügung von OOP hat viele neue Probleme mit sich gebracht.

Funktionale Programmierung

Ich habe es zunächst nicht verstanden. Ich kann diesen Funktionscode lesen und verstehen, aber ich weiß nicht warum! Schließlich zwang ich mich, es zu lernen.

Funktionale Sprachen haben mir eine neue Perspektive eröffnet und mir ermöglicht, die Programmierung aus einer ganz anderen Perspektive zu betrachten.

Es wird sich zunächst unnatürlich anfühlen und es wird einige Zeit dauern, bis man sich daran gewöhnt. Alle Definitionen basieren auf Funktionen, die Werte können nicht geändert werden und es gibt keinen Status. Ich nutze funktionales Denken, um Probleme zu lösen. Da ich damit nicht vertraut war, dauerte es länger, es zu lernen. Nach und nach beherrschte ich die Anwendung funktionaler Methoden zum Programmieren. Und ich kenne auch die innere Bedeutung jedes so geschriebenen Codes.

Mein Code ist prägnanter und einfacher wiederzuverwenden. Nach und nach verschwanden die Sprachfunktionen, die ich früher verwendet hatte, aus dem Code und mein Code sah völlig so aus, als wäre er in einer anderen Sprache geschrieben. Benutze ich immer noch JavaScript?

1. Var nicht mehr verwenden

Ich habe var durch const ersetzt. Durch funktionales Design sind meine Funktionen rein. Der Wert einer Variablen wird nicht erneut geändert, auch um sicherzustellen, dass sie nicht bearbeitet wird.

Ich werde den Code überprüfen, um sicherzustellen, dass jede Variable, sogar Let, alle Deklarationen const verwenden.

2. Es gibt keine for-Schleife

Wenn wir eine Programmiersprache lernen, lernen wir am Anfang die for-Schleife. Aber seit ich funktionale Programmierung gelernt habe, habe ich die for-Schleife so geändert, dass sie Filter, Map und Reduce verwendet. Für diejenigen, die zusätzliche Berechnungen erfordern, würde ich Rekursion oder eine Drittanbieterbibliothek wie lazy.js verwenden.

Mein Code enthält jetzt keine for-Schleife. Wenn Sie sie sehen, sagen Sie es mir und ich werde sie entfernen.

3. if kann auch vereinfacht werden

Ich habe damit begonnen, keine großen Codeblöcke mehr in if zu schreiben. Ich habe die darin enthaltene Logik extrahiert und in eine separate Funktion eingefügt. Auf diese Weise können wir die Verwendung des ternären Operators (a?b:c) vereinfachen.

Heutzutage gibt es in meinem Code fast keine if-Anweisungen mehr. Um anderen Entwicklern das Verständnis meines Codes zu erleichtern, verwende ich ihn selten.

4. Verabschieden Sie sich von Switch

Ebenso nutze ich Switch nicht gern, sondern suche nach einer funktionalen Schreibweise.

Ich verwende auch gerne den Cond-Operator von Ramda anstelle von Switch.

Machen Sie sich darüber keine Sorgen

Ja, Sie haben es richtig gehört! Wir können dies auch komplett beseitigen.

Funktionales JavaScript ermöglicht es Ihnen, auf die Verwendung lästiger Funktionen vollständig zu verzichten
Jetzt gibt es nur noch Daten und Funktionen, und selbst Daten sind nur ein spezieller Ausdruck der Funktion, Sie benötigen dies nicht mehr. Ich begann, Objekte als Zustände und Funktionen in funktionalen Sprachen zu verstehen. Ich muss nicht einmal Zustände oder Funktionen an Objekte binden, wie in OOP.

Objektorientiertes Design ist nicht notwendig

Rückblickend finde ich, dass die Komplexität, die die Programmierung von Oberflächenobjekten mit sich bringt, wirklich unnötig ist. Mit funktionalen Sprachen kann ich die gleiche Funktionalität implementieren und die gleichen Aufgaben erledigen. Darüber hinaus ist der Code leichter, da diese komplexen Objekte nicht weitergegeben werden müssen. Es gibt nur Daten und Funktionen, und da Funktionen nicht an Objekte gebunden sind, können sie einfacher wiederverwendet werden. Ich muss mir keine Sorgen mehr über all die Probleme machen, die die traditionelle prototypische Vererbung mit sich bringt.

Das Fehlen privater, öffentlicher, interner oder geschützter Zugriffscontroller für JavaScript ist kein Problem mehr. Zugangscontroller sollen Probleme lösen, die durch die Einführung der objektorientierten Programmierung entstehen. Im funktionalen JavaScript bestehen diese Probleme nicht mehr.

Zusammenfassung

Mein Code sieht jetzt völlig anders aus. Es enthält viele reine Funktionen, die ich in verschiedene ES6-Module umgewandelt habe. Mit diesen Funktionen können komplexere Funktionen erstellt werden. Eine große Anzahl von Funktionen sind sehr einfache einzeilige Lambda-Ausdrücke.

Jetzt hat sich meine Einstellung zu Software geändert: Die Eingabe ist ein Datenstrom, und dann agiert das Programm auf dem Datenstrom, um verschiedene Operationen an den Daten auszuführen, und gibt dann neue Daten zurück.

Funktionales Design hat Auswirkungen auf Programmiersprachen und ist überall. LINQ in C# ist das beste Beispiel. In ähnlicher Weise führt Java 8 auch funktionale Sprachfunktionen ein.

Verwandte Empfehlungen:

Detaillierte Einführung in XML-Verhalten (Verhalten) – neues DHTML?

Das obige ist der detaillierte Inhalt vonFunktionsfreigabe, die es ermöglicht, JavaScript auseinanderzubrechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn