JS-Tutorial

JS-HAUS JS-Einführung JS Wohin JS-Ausgabe JS-Anweisungen JS-Syntax JS-Kommentare JS-Variablen JS Let JS Konst JS-Operatoren JS-Arithmetik JS-Aufgabe JS-Datentypen JS-Funktionen JS-Objekte JS-Ereignisse JS-Strings JS-String-Methoden Suche nach JS-Strings JS-String-Vorlagen JS-Nummern JS-Zahlenmethoden JS-Arrays JS-Array-Methoden JS-Array-Sortierung JS-Array-Iteration JS-Array-Konstante JS-Daten JS-Datumsformate JS Date Get-Methoden JS-Datumssatzmethoden JS Math JS Zufällig JS Boolesche Werte JS-Vergleiche JS-Bedingungen JS-Schalter JS-Schleife für JS-Schleife für In JS-Schleife für Of JS-Schleife While JS Pause JS-Iterables JS-Sets JS-Karten JS Typeof JS-Typkonvertierung JS Bitweise JS RegExp JS-Fehler JS-Bereich JS Heben Strenger JS-Modus JS dieses Schlüsselwort JS-Pfeilfunktion JS-Klassen JS JSON JS-Debugging JS-Styleguide JS Best Practices JS-Fehler JS-Leistung JS Reservierte Wörter

JS-Versionen

JS-Versionen JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS-Geschichte

JS-Objekte

Objektdefinitionen Objekteigenschaften Objektmethoden Objektanzeige Objektzugriffsmethoden Objektkonstruktoren Objekt-Prototypen Objekt-Iterables Objektsätze Objektkarten Objektreferenz

JS-Funktionen

Funktionsdefinitionen Funktionsparameter Funktionsaufruf Funktionsaufruf Funktion anwenden Funktionsschließungen

JS-Klassen

Klasse Einführung Klassenvererbung Klasse statisch

JS asynchron

JS-Rückrufe JS asynchron JS verspricht JS Async/Warten

JS-HTML-DOM

DOM-Einführung DOM-Methoden DOM-Dokument DOM-Elemente DOM-HTML DOM-Formulare DOM-CSS DOM-Animationen DOM-Ereignisse DOM-Ereignis-Listener DOM-Navigation DOM-Knoten DOM-Sammlungen DOM-Knotenlisten

Stückliste des JS-Browsers

JS-Fenster JS-Bildschirm JS-Standort JS-Geschichte JS-Navigator JS-Popup-Warnung JS-Timing JS-Cookies

JS-Web-APIs

Web-API-Einführung Web Forms-API Webprotokoll-API Webspeicher-API Web Worker-API Web-Fetch-API Web-Geolocation-API

JS AJAX

AJAX-Einführung AJAX-XMLHttp AJAX-Anfrage AJAX-Antwort AJAX-XML-Datei AJAX-PHP AJAX ASP AJAX-Datenbank AJAX-Anwendungen AJAX-Beispiele

JS JSON

JSON-Einführung JSON-Syntax JSON vs. XML JSON-Datentypen JSON-Parsing JSON-Stringify JSON-Objekte JSON-Arrays JSON-Server JSON-PHP JSON-HTML JSON JSONP

JS vs. jQuery

jQuery-Selektoren jQuery-HTML jQuery-CSS jQuery-DOM

JS-Grafik

JS-Grafik JS-Leinwand JS Plotly JS Chart.js JS Google-Diagramm JS D3.js

JS-Beispiele

JS-Beispiele JS-HTML-DOM JS-HTML-Eingabe JS-HTML-Objekte JS-HTML-Ereignisse JS-Browser JS-Editor JS-Übungen JS-Quiz JS-Zertifikat

JS-Referenzen

JavaScript-Objekte HTML-DOM-Objekte


JavaScript-Callbacks

"Ich werde später zurückrufen!"

Ein Callback ist eine Funktion, die als Argument an eine andere Funktion übergeben wird

Diese Technik ermöglicht es einer Funktion, eine andere Funktion aufzurufen

Eine Rückruffunktion kann ausgeführt werden, nachdem eine andere Funktion beendet wurde

Funktionsablauf

JavaScript-Funktionen werden in der Reihenfolge ausgeführt, in der sie aufgerufen werden. Nicht in der Reihenfolge, in der sie definiert sind.

In diesem Beispiel wird am Ende "Auf Wiedersehen" angezeigt:

Beispiel

function myFirst() {
  myDisplayer("Hello");
}

function mySecond() {
  myDisplayer("Goodbye");
}

myFirst();
mySecond();

In diesem Beispiel wird am Ende "Hallo" angezeigt:

Beispiel

function myFirst() {
  myDisplayer("Hello");
}

function mySecond() {
  myDisplayer("Goodbye");
}

mySecond();
myFirst();


Ablaufsteuerung

Manchmal möchten Sie eine bessere Kontrolle darüber haben, wann eine Funktion ausgeführt werden soll.

Angenommen, Sie möchten eine Berechnung durchführen und dann das Ergebnis anzeigen.

Sie könnten eine Taschenrechnerfunktion ( ) aufrufen myCalculator, das Ergebnis speichern und dann eine andere Funktion ( myDisplayer) aufrufen, um das Ergebnis anzuzeigen:

Beispiel

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}

function myCalculator(num1, num2) {
  let sum = num1 + num2;
  return sum;
}

let result = myCalculator(5, 5);
myDisplayer(result);

Oder Sie könnten eine Taschenrechnerfunktion ( myCalculator) aufrufen und die Taschenrechnerfunktion die Anzeigefunktion ( myDisplayer) aufrufen lassen:

Beispiel

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}

function myCalculator(num1, num2) {
  let sum = num1 + num2;
  myDisplayer(sum);
}

myCalculator(5, 5);

Das Problem mit dem ersten obigen Beispiel ist, dass Sie zwei Funktionen aufrufen müssen, um das Ergebnis anzuzeigen.

Das Problem mit dem zweiten Beispiel ist, dass Sie nicht verhindern können, dass die Taschenrechnerfunktion das Ergebnis anzeigt.

Jetzt ist es an der Zeit, einen Rückruf einzuleiten.


JavaScript-Callbacks

Ein Callback ist eine Funktion, die als Argument an eine andere Funktion übergeben wird.

Mit einem Callback könnten Sie die Taschenrechnerfunktion ( myCalculator) mit einem Callback aufrufen und die Taschenrechnerfunktion den Callback ausführen lassen, nachdem die Berechnung abgeschlossen ist:

Beispiel

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}

function myCalculator(num1, num2, myCallback) {
  let sum = num1 + num2;
  myCallback(sum);
}

myCalculator(5, 5, myDisplayer);

Im obigen Beispiel myDisplayerist der Name einer Funktion.

Es wird myCalculator()als Argument übergeben.

Wenn Sie eine Funktion als Argument übergeben, denken Sie daran, keine Klammern zu verwenden.

Rechts: myCalculator(5, 5, myDisplayer);

Falsch: meinRechner(5, 5, meinDisplayer());


Wann sollte man einen Rückruf verwenden?

Die obigen Beispiele sind nicht sehr aufregend.

Sie sind vereinfacht, um Ihnen die Callback-Syntax beizubringen.

Wo Callbacks wirklich glänzen, sind asynchrone Funktionen, wo eine Funktion auf eine andere Funktion warten muss (wie das Warten auf das Laden einer Datei).

Asynchrone Funktionen werden im nächsten Kapitel behandelt.