So gestalten Sie Ihre JavaScript-Funktionen eleganter

So gestalten Sie Ihre JavaScript-Funktionen eleganter

Ich werde eine Reihe zu JS-Kenntnissen schreiben, die hauptsächlich darin besteht, verschiedene praktische Tipps und Tricks zu JS zusammenzufassen. In diesem Artikel wird hauptsächlich untersucht, wie wir unsere Funktionen klarer gestalten können.

Objektparameter durch Destrukturierung

Wenn Ihre Funktion viele Argumente (mehr als zwei) annehmen soll, sollten Sie ein Objekt verwenden. Auf dieser Grundlage können die erforderlichen Parameter mittels Dekonstruktionssyntax extrahiert werden.

Normales Schreiben

const greet = (obj) => {
  gibt `${obj.greeting}, ${obj.firstName}${obj.lastName}` zurück;
}

umschreiben

const grüßen = ({
  Gruß,
  Vorname,
  Nachname
}) => {
  gibt `${greeting}, ${firstName}${lastName}` zurück;
}

Die Verwendung der Dekonstruktion ist eleganter, wir können weniger sich wiederholende Dinge schreiben und die Benennung ist klarer.

Callback-Funktionen benennen

Eine gute Benennung erleichtert das Lesen des Codes. Das Gleiche gilt für die Benennung von Rückruffunktionen.

Normales Schreiben

const arr = [1, 2, 3].map(a => a * 2);

umschreiben

Konstante Doppelzahl = a => a * 2;
const arr = [1, 2, 3].map(double);

Durch die separate Benennung ist die Bedeutung des Codes auf einen Blick leichter zu erkennen, wie oben gezeigt: Aus dem Namen geht hervor, dass die Rückruffunktion verwendet wird, um jedes Element des ursprünglichen Arrays zu verdoppeln.

Konditionale beschreibend gestalten

Für komplexe bedingte Urteile können wir ausschließlich Funktionen verwenden, um sie auszudrücken, wodurch die bedingte Aussage aussagekräftiger wird.

Normales Schreiben

if (Punktzahl === 100 || verbleibendeSpieler === 1 || verbleibendeSpieler === 0) {
    Spiel beenden();
  }

umschreiben

const winnerExists = () => {
  Rückgabewert === 100 ||
    verbleibendeSpieler === 1 ||
    verbleibendeSpieler === 0
}
wenn (GewinnerExistiert()) {
  Spiel beenden();
}

In der ursprünglichen Schreibweise haben wir einen langen Ausdruck in Klammern, aber es ist schwer zu sagen, was er beurteilt. Nach dem Umschreiben fügen wir es in eine benannte Funktion ein und können die Bedeutung des Ausdrucks anhand des Namens grob verstehen.

Ersetzen Sie Switch-Anweisungen durch Map oder Object

Wenn Ihre Switch-Anweisung lang ist, bedeutet das, dass Sie Ihren Code vereinfachen sollten.

Normales Schreiben

const getValue = (Eigenschaft) => {
  Schalter (Eigenschaft) {
    Fall 'a': {
      Rückgabe 1;
    }
    Fall 'b': {
      Rückgabe 2;
    }
    Fall 'c': {
      Rückgabe 3;
    }
  }
}
Konstantenwert = getValue('a');

Objektumschreiben

const obj = {
  ein: 1,
  b: 2,
  c: 3
}
Konstante val = obj['a'];

Wir verwenden switch, um mehrere Blöcke mit mehreren return-Anweisungen zu verschachteln, nur um den Rückgabewert für einen gegebenen Prop-Wert zu erhalten, aber wir können denselben Effekt mit nur einem Objekt erzielen.

Kartenneuerstellung

const map = neue Map([['a', 1], ['b', 2], ['c', 3]])
const val = map.get('a')

Bei Verwendung von Map ist der Code auch viel kürzer. Wir übergeben ein Array, in dem jedes Element einen Schlüssel und einen Wert enthält. Dann verwenden wir einfach die Get-Methode der Map-Instanz, um den Wert aus dem Schlüssel zu erhalten. Ein Vorteil von Map gegenüber Object besteht darin, dass wir andere Werte wie Zahlen, Boolesche Werte oder Objekte als Schlüssel verwenden können. Objekte können nur Zeichenfolgen oder Symbole als Schlüssel haben.

Verwenden von Object.assign zum Festlegen von Standardeigenschaften

Normales Schreiben

const Menükonfiguration = {
  Titel: null,
  Körper: 'Bar'
};
Funktion Menü erstellen(Konfiguration) {
  Konfigurationstitel = Konfigurationstitel || 'Foo';
  config.body = config.body || 'Leiste';
}
Menü erstellen(Menükonfiguration);

umschreiben

const Menükonfiguration = {
  Titel: 'Bestellung',
  Text: „Senden“
};
Funktion Menü erstellen(Konfiguration) {
  config = Objekt.assign({
    Titel: 'Foo',
    Körper: 'Bar'
  }, Konfiguration);
  // Konfiguration: {Titel: "Bestellung", Text: "Bar"}
  // ...
}
Menü erstellen(Menükonfiguration);

Löschen Sie doppelten Code, führen Sie ähnliche Funktionen zusammen und löschen Sie veralteten Code.

Schlechtes Schreiben

var Paging = Funktion (aktuelle Seite) {
    wenn ( aktuelleSeite <= 0 ) {
        aktuelleSeite = 0;
        jump( aktuelleSeite ); // springen }sonst wenn ( aktuelleSeite >= Gesamtseite ){
        aktuelleSeite = Gesamtseite;
        jump( aktuelleSeite ); // springen }else{
        Sprung( aktuelleSeite ); // Sprung }
};

umschreiben

var Paging = Funktion (aktuelle Seite) {
    wenn ( aktuelleSeite <= 0 ) {
        aktuelleSeite = 0;
    }sonst wenn ( aktuelleSeite >= Gesamtseite ){
        aktuelleSeite = Gesamtseite;
    }
    jump( currPage ); // trenne die Sprungfunktion };

Extraktionsfunktion

Wenn eine Funktion zu lang ist und mehrere Kommentare benötigt, um sie leichter lesbar zu machen, ist ein Refactoring dieser Funktionen erforderlich.

Wenn es in einer Funktion einen Codeabschnitt gibt, der isoliert werden kann, ist es am besten, diesen Code in eine andere, unabhängige Funktion einzufügen.

Beispiel

Beispielsweise müssen wir in einer Funktion, die für das Abrufen von Benutzerinformationen verantwortlich ist, auch Protokolle im Zusammenhang mit Benutzerinformationen drucken.

var getUserInfo = function(){
    ajax( 'http:// xxx.com/userInfo', Funktion( Daten ){
        console.log( 'Benutzer-ID: ' + Daten.Benutzer-ID );
        console.log( 'Benutzername: ' + data.userName );
        console.log( 'Spitzname: ' + data.Spitzname );
    });
};

umschreiben

Wir können die Anweisung zum Drucken des Protokolls in einer separaten Funktion kapseln.

var getUserInfo = function(){
    ajax( 'http:// xxx.com/userInfo', Funktion( Daten ){
        printDetails(Daten);
    });
};

var printDetails = Funktion(Daten){
    console.log( 'Benutzer-ID: ' + Daten.Benutzer-ID );
    console.log( 'Benutzername: ' + data.userName );
    console.log( 'Spitzname: ' + data.Spitzname );
};

Referenz: Tipps zum Refactoring von JavaScript – Funktionen klarer und übersichtlicher gestalten „JavaScript-Entwurfsmuster und Entwicklungspraktiken“

Zusammenfassen

Dies ist das Ende dieses Artikels darüber, wie Sie Ihre JavaScript-Funktion eleganter gestalten können. Weitere verwandte Inhalte zu eleganten JavaScript-Funktionen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Ein Artikel bringt Ihnen die Vererbung von JS-Funktionen bei
  • Wie lang ist eine Funktion in js?
  • JavaScript-Grundlagenreihe: Funktionen und Methoden
  • Verwendung der JavaScript-Sleep-Funktion
  • Ausnahmebehandlung der integrierten Funktionen json_encode und json_decode in PHP
  • Zusammenfassung von über 50 Hilfsfunktionen in JavaScript
  • Tiefgreifendes Verständnis der JavaScript-Rückruffunktionen
  • Drei Lösungen für Unterfunktionen, die auf externe Variablen in JavaScript zugreifen
  • Grundlagen der funktionalen Programmierung in JavaScript

<<:  Detaillierte Erläuterung zur Verwendung von Amoeba zum Implementieren der Lese-/Schreibtrennung einer MySQL-Datenbank

>>:  So fügen Sie ein Lua-Modul zu Nginx hinzu

Artikel empfehlen

CSS erzielt den Effekt der Vermischung zweier Elemente (Sticky-Effekt)

Ich erinnere mich, dass es vor ein paar Jahren in...

Detailliertes Tutorial zur Installation von Protobuf 3 unter Ubuntu

Wann ist die Installation durchzuführen? Wenn Sie...

Eine kurze Diskussion über die MySQL-Zeilenanzahl

Wir alle kennen die MySQL-Funktion count(), mit d...

HTML-Tabellen-Markup-Tutorial (38): Rahmenfarben-Attribut der Kopfzeile BORDERCOLOR

Um die Tabelle zu verschönern, können Sie für die...

MariaDB unter Linux startet mit dem Root-Benutzer (empfohlen)

Da ich Sicherheitsprodukte testen musste, wollte ...

Tipps zur Verwendung kleiner HTML-Tags

Phrasenelemente wie <em></em> können d...

WeChat Mini-Programm implementiert den Likes-Dienst

In diesem Artikel wird der spezifische Code für d...

Prinzip und Anwendungsbeispiele des URL-Umschreibmechanismus von Nginx

Durch das Umschreiben der URL lässt sich die bevo...

Beispielmethode zum Bereitstellen eines React-Projekts auf Nginx

Testprojekt: react-demo Klonen Sie Ihr React-Demo...

Die Lösung von html2canvas, dass Bilder nicht normal erfasst werden können

Frage Lassen Sie mich zunächst über das Problem s...

Was tun, wenn Sie das ursprüngliche Passwort für MySQL auf dem MAC vergessen?

Die Lösung zum Vergessen des ursprünglichen MySQL...

Implementierung einfacher Tabs mit js

Tab-Auswahlkarten werden auf echten Webseiten seh...