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- Funktionsdefinitionen


JavaScript-Funktionen werden mit dem Schlüsselwort definiert .function

Sie können eine Funktionsdeklaration oder einen Funktionsausdruck verwenden .


Funktionsdeklarationen

Weiter oben in diesem Tutorial haben Sie gelernt, dass Funktionen mit der folgenden Syntax deklariert werden:

function functionName(parameters) {
  // code to be executed
}

Deklarierte Funktionen werden nicht sofort ausgeführt. Sie werden "zur späteren Verwendung gespeichert" und später ausgeführt, wenn sie aufgerufen (aufgerufen) werden.

Beispiel

function myFunction(a, b) {
  return a * b;
}

Semikolons werden verwendet, um ausführbare JavaScript-Anweisungen zu trennen.
Da eine Funktionsdeklaration keine ausführbare Anweisung ist, ist es nicht üblich, sie mit einem Semikolon zu beenden .


Funktionsausdrücke

Eine JavaScript-Funktion kann auch mit einem Ausdruck definiert werden .

Ein Funktionsausdruck kann in einer Variablen gespeichert werden:

Beispiel

const x = function (a, b) {return a * b};

Nachdem ein Funktionsausdruck in einer Variablen gespeichert wurde, kann die Variable als Funktion verwendet werden:

Beispiel

const x = function (a, b) {return a * b};
let z = x(4, 3);

Die obige Funktion ist eigentlich eine anonyme Funktion (eine Funktion ohne Namen).

In Variablen gespeicherte Funktionen benötigen keine Funktionsnamen. Sie werden immer unter Verwendung des Variablennamens aufgerufen (aufgerufen).

Die obige Funktion endet mit einem Semikolon, da sie Teil einer ausführbaren Anweisung ist.



Der Function()-Konstruktor

Wie Sie in den vorherigen Beispielen gesehen haben, werden JavaScript-Funktionen mit dem functionSchlüsselwort definiert.

Funktionen können auch mit einem integrierten JavaScript-Funktionskonstruktor namens definiert werden Function().

Beispiel

const myFunction = new Function("a", "b", "return a * b");

let x = myFunction(4, 3);

Sie müssen den Funktionskonstruktor eigentlich nicht verwenden. Das obige Beispiel ist dasselbe wie das Schreiben:

Beispiel

const myFunction = function (a, b) {return a * b};

let x = myFunction(4, 3);

In den meisten Fällen können Sie die Verwendung des newSchlüsselworts in JavaScript vermeiden.


Funktion Heben

Weiter oben in diesem Tutorial haben Sie etwas über „Heben“ ( JavaScript Hoisting ) gelernt.

Hoisting ist das Standardverhalten von JavaScript, das Deklarationen an den Anfang des aktuellen Gültigkeitsbereichs verschiebt.

Das Heben gilt für Variablendeklarationen und für Funktionsdeklarationen.

Aus diesem Grund können JavaScript-Funktionen aufgerufen werden, bevor sie deklariert werden:

myFunction(5);

function myFunction(y) {
  return y * y;
}

Mit einem Ausdruck definierte Funktionen werden nicht gehisst.


Selbstaufrufende Funktionen

Funktionsausdrücke können "selbstaufrufend" gemacht werden.

Ein selbstaufrufender Ausdruck wird automatisch aufgerufen (gestartet), ohne aufgerufen zu werden.

Funktionsausdrücke werden automatisch ausgeführt, wenn auf den Ausdruck () folgt.

Sie können eine Funktionsdeklaration nicht selbst aufrufen.

Sie müssen die Funktion in Klammern setzen, um anzuzeigen, dass es sich um einen Funktionsausdruck handelt:

Beispiel

(function () {
  let x = "Hello!!";  // I will invoke myself
})();

Die obige Funktion ist eigentlich eine anonyme selbstaufrufende Funktion (Funktion ohne Namen).


Funktionen können als Werte verwendet werden

Als Werte können JavaScript-Funktionen verwendet werden:

Beispiel

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3);

JavaScript-Funktionen können in Ausdrücken verwendet werden:

Beispiel

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3) * 2;

Funktionen sind Objekte

Der typeofOperator in JavaScript gibt "Funktion" für Funktionen zurück.

Aber JavaScript-Funktionen lassen sich am besten als Objekte beschreiben.

JavaScript-Funktionen haben sowohl Eigenschaften als auch Methoden .

Die arguments.lengthEigenschaft gibt die Anzahl der Argumente zurück, die beim Aufruf der Funktion empfangen wurden:

Beispiel

function myFunction(a, b) {
  return arguments.length;
}

Die toString()Methode gibt die Funktion als String zurück:

Beispiel

function myFunction(a, b) {
  return a * b;
}

let text = myFunction.toString();

Eine als Eigenschaft eines Objekts definierte Funktion wird als Methode des Objekts bezeichnet.
Eine Funktion zum Erstellen neuer Objekte wird als Objektkonstruktor bezeichnet.


Pfeilfunktionen

Pfeilfunktionen ermöglichen eine kurze Syntax zum Schreiben von Funktionsausdrücken.

Sie brauchen das functionSchlüsselwort, das returnSchlüsselwort und die geschweiften Klammern nicht .

Beispiel

// ES5
var x = function(x, y) {
  return x * y;
}

// ES6
const x = (x, y) => x * y;

Pfeilfunktionen haben keine eigenen this. Sie eignen sich nicht gut zum Definieren von Objektmethoden .

Pfeilfunktionen werden nicht gehisst. Sie müssen vor ihrer Verwendung definiert werden.

Die Verwendung const ist sicherer als die Verwendung von var, da ein Funktionsausdruck immer ein konstanter Wert ist.

Sie können das Schlüsselwort und die geschweiften Klammern nur weglassen, returnwenn die Funktion eine einzelne Anweisung ist. Aus diesem Grund könnte es eine gute Angewohnheit sein, sie immer beizubehalten:

Beispiel

const x = (x, y) => { return x * y };

Pfeilfunktionen werden in IE11 oder früher nicht unterstützt.