Es ist an der Zeit, sich dem Monster (JavaScript) in Klammern zu stellen

Aktuelles JavaScript ist voller Klammern!

Fühlt sich jemand so? Solche Leute sind das Ziel dieses Artikels. Bitte lesen Sie etwas mehr. Das habe ich mir bis vor einem Jahr gedacht. Zum Beispiel die folgenden Quellen. Es ist eine sogenannte ** Sache in Klammern **.

var length = (array) => {
    return reduce(map(alwaysReturnOne)(array));
};
length([1,2,3]);

Ich habe Java schon lange entwickelt, daher dachte ich, es wäre schön, wenn ich JavaScript ein wenig lesen könnte. In letzter Zeit wurden in Java jedoch ** Klammern ** in einer Form namens Lambda-Ausdruck angezeigt. Am SI-Standort wurde die Java 8-Syntax seit dem neuen Entwicklungsprojekt des letzten Jahres übernommen, sie wird jedoch nächstes Jahr für Wartung und Reparatur verwendet. ** Ich kann der Klammer nicht mehr entkommen. ** ** **

So machte ich einen Schritt in Richtung des Monsters in Klammern. Wenn Sie nur Java machen und es bemerken, hoffe ich, dass es der erste Start für Leute ist, die ** Angst vor JavaScript ** haben.

Was ich in diesem Artikel schreibe

  1. Was ist die wahre Identität von Klammern?
  2. Was ist gut mit Klammern? .

1. 1. Was ist die Identität von Klammern?

Wenn Sie es ohne Angst vor Missverständnissen schreiben, ist der wahre Charakter von Klammern eine Funktion in einem Wort. Es gibt verschiedene Arten von Funktionen wie Gleichheitsfunktion, Polynomfunktion, anonyme Funktion und konstante Funktion. Und es gibt Verschlüsse, Thunks, Monaden, Curry usw., die es verwenden. Ich denke, dass die Tatsache, dass diese schwer verständlichen Konzepte ohne Kommentare in der Quelle verwendet werden, eine hohe Barriere für Anfänger darstellt. Also ** vergiss die schwierigen Worte, die ich oben geschrieben habe **. Klammern sind jedoch Funktionen. Denken Sie daran. Kommen wir nun zu den Vorteilen von Klammern (Funktionen).

2. Was ist gut mit Klammern?

Ich habe bereits erwähnt, dass Klammern Funktionen sind, aber ich denke, viele Leute denken, dass "Funktionen durch Gruppierungsprozesse gemeinsam verwendet werden können". Das stimmt, aber die in JavaScript verwendeten Funktionen haben eine etwas andere Bedeutung. Diejenigen, die Programme in C oder Java geschrieben haben, haben diese Idee zu stark, um JavaScript als funktionale Sprache zu verstehen. Wenn Sie eine Funktion mit einer Java-ähnlichen Idee schreiben, definieren Sie die allgemeine Verarbeitung einschließlich der Geschäftslogik als Funktion. Wenn Sie es jedoch als funktionale Programmierung betrachten, ** kann es immer noch nicht als Funktion bezeichnet werden. Durch Zerlegen in kleinere Teile ist es möglich, die Wiederverwendung zu fördern und die Identität zu bewahren **.

Erstklassiges Objekt

Denken Sie zunächst nur an einen. JavaScript ** -Funktionen, die die Merkmale einer funktionalen Sprache aufweisen, können in Variablen ** gespeichert werden. Aus diesem Grund werden JavaScript-Funktionen als erstklassige Objekte (erstklassige Objekte) bezeichnet. Es ist ein schwieriges Wort, aber denken Sie daran als "** primäres Objekt = nur ein Wert (Variable) **".

Wenn Sie dies verstehen, können Sie ein wenig schwer lesbares JavaScript lesen.

Das folgende Programm erstellt beispielsweise eine Funktion mit dem Namen Konstante. Außerdem übergeben wir in der letzten Zeile das eigentliche Argument "1" an die Funktion und deklarieren eine Variable namens alwaysReturnOne. Infolgedessen wird die Funktion in den Zeilen 2 bis 4 in alwaysReturnOne mit dem tatsächlichen Argument "1" gespeichert.

Wichtig hierbei ist, dass alwaysReturnOne eine Funktion ist, die immer "1" zurückgibt. .

var constant = (any) => {
    return (_) => {
        return any;
    };
};
var alwaysReturnOne = constant(1);​​

Das Verständnis, dass ** "Variablen, in denen Funktionen gespeichert sind, an verschiedenen Stellen verwendet werden" **, ist ein Schritt zum Verständnis des modernen JavaScript.

Aber Sie fragen sich vielleicht: "Was sind die Vorteile dieser Funktion?" Auch diese einfache Funktion kann verwendet werden. Sie können alle Elemente des Arrays in 1 konvertieren, indem Sie das folgende Programm ausführen. Dies liegt daran, dass die Funktion, die den Inhalt des Arrays namens map verarbeitet, als Argument an die Funktion übergeben wird, die alles auf 1 setzt.

[1,2,3].map(alwaysReturnOne);
//Ergebnis-> [1,1,1]

​ Beim Lesen von JavaScript können die darin verwendeten Variablen Funktionen sein. Wenn es sich um eine Funktion handelt, ist das Lesen der Funktion in Blockeinheiten ({}) überraschend einfach. Du kannst gehen.

Durch Kombinieren des obigen Codes mit einer Methode, die den Wert des Elements count hinzufügt, können Sie eine Funktion erstellen, die die Elemente des Arrays von [1,1,1] hinzufügt und die Größe des Arrays berechnet.

var length = (array) => {
    return count(map(alwaysReturnOne)(array));
};
length([1,2,3]);
//Ergebnis → 3

(Reduzieren und Zuordnen sind mit Bibliotheken wie Underscore.js einfacher zu verwenden, aber ich habe es selbst gemacht, weil es funktionales Lernen ist. Hinzugefügt am 07.12.2017)

//Kartenfunktion
var map = (convert) => {
          return (array) => {
            return array.reduce((accumulator, data) => {
              return accumulator.concat(convert(data));
            },[]); 
          };
        };
//Zählfunktion
var count = (array) => {
          return array.reduce((accumulator, data) => {
            return accumulator + data;
          },0);
        };

​ Um JavaScript-Funktionen zusammenzufassen: In JavaScript können Funktionen wie Werte behandelt werden, sodass sie die folgenden Merkmale aufweisen können.

Dieser Mechanismus wird als Funktion höherer Ordnung bezeichnet und häufig in JavaScript verwendet, was zu mehr Klammern führt. Dies erschwert jedoch nicht das Lesen der Quelle, erhöht jedoch wirksam die Wiederverwendbarkeit des Programms und die Toleranz gegenüber Fehlern. ​ In letzter Zeit nimmt die Anzahl der Kombinationen von Spring für das Back-End und Angular für das Front-End zu. Wenn Sie JavaScript nicht mögen, warum probieren Sie es nicht aus? (Angular verwendet häufig TypeScript ...)

Nachschlagewerk

Ich benutze die folgenden drei Bücher zum Lernen. Ich denke, dass funktionale Programmierung ein Paradigmenwechsel ist, den Menschen, die Java geschrieben haben, bisher noch nicht erlebt haben. Wenn Sie also ein Buch, zwei Bücher nicht verstehen und es immer noch schwer zu verstehen ist, ist das dritte Buch besser. Ich denke. Es gibt keine Abkürzungen, und ich glaube nicht, dass Sie alles im Buch verstehen müssen, aber ich empfehle, das Buch zu ändern, weil es Ihnen eine neue Perspektive gibt. Lernen Sie die Grundlagen der funktionalen Programmierung mit JavaScript Mit JavaScript erlernte funktionale Programmierung JavaScript-Funktionsprogrammierung beeindruckt Top-Zahnradserien, um Ideen und Praktiken zur Reduzierung der Komplexität zu erlernen

Recommended Posts

Es ist an der Zeit, sich dem Monster (JavaScript) in Klammern zu stellen
Über die Sprache, die von nun an zu lernen ist
Übergeben Sie das Gebietsschema i18n an JavaScript
Der Weg von JavaScript nach Java
Einführung in Java zum ersten Mal # 2
Über das Verfahren, damit Java funktioniert
[Java] So stellen Sie die Datums- und Uhrzeit auf 00:00:00 ein
Stellen Sie die Zeit von LocalDateTime auf eine bestimmte Zeit ein
Über die echte Sommerzeit
Vereinheitlichen Sie die Zeitzone der Rails-App mit der japanischen Zeit