Ausdrücke und Operatoren

Dieses Kapitel behandelt alle JavaScript Sprachoperatoren, Ausdrücke und Schlüsselwörter.

Ausdrücke und Operatoren geordnet nach Kategorie

Die alphabetische Sortierung finden Sie in der linken Seitenspalte.

Grundlegende Ausdrücke

Elementare Schlüsselwörter und allgemeine Ausdrücke in JavaScript.

this
Das this Schlüsselwort referenziert eine spezielle Eigenschaft des Ausführungskontexts.
function
Der function Schlüsselbegriff definiert einen Funktionsausdruck.
class
Das class Schlüsselwort definiert einen Klassenausdruck.
function*
Das function* Schlüsselword definiert einen Generatorfunktionsausdruck.
yield
Eine Generatorfunktion anhalten und fortsetzen.
yield*
Delegiert zu einer anderen Generatorfunktion oder Iterable Objekt.
This is an experimental API that should not be used in production code. async function*
async function definiert einen asynchron Funktionsausdruck.
This is an experimental API that should not be used in production code. await
Hält eine asynchrone Funktion an und setzt sie fort und wartet dabei auf ein erfolgreichen oder nicht erfolgreichen Promise.
[]
Array-Initialisierungs/Literal-Syntax.
{}
Objekt-Initialisierungs/Literal-Syntax.
/ab+c/i
Literal-Syntax für reguläre Ausdrücke.
( )
Gruppierungs-Operator.

Linke-Seite-Ausdrücke

Werte auf der linken Seite sind das Ziel einer Zuweisung.

Eigenschaftszugriff
Member-Operatoren ermöglichen den Zugriff auf eine Objektvariable oder eine Methode eines Objekts (object.property und object["property"]).
new
Der new Operator erzeugt eine Instanz über einen Konstruktor.
new.target
In Konstruktoren referenziert new.target auf den Konstruktor, welcher mit new aufgerufen wurde.
super
Das super Schlüsselwort ruft den Elternkonstruktor auf.
...obj
Der Spread-Operator ermöglicht es einem Ausdruck in Situationen erweitert zu werden, wo mehrfache Argumente (für Funktionsaufrufe) oder mehrfache Elemente (für Array-Literale) erwartet werden.

Inkrement und Dekrement

Postfix/Prefix-Inkrement- und Postfix/Prefix-Dekrement-Operatoren.

A++
Postfix-Inkrementoperator.
A--
Postfix-Dekrementoperator.
++A
Prefix-Inkrementoperator.
--A
Prefix-Dekrementoperator.

Unäre Operatoren

Ein unärer Operation ist ein Operation mit nur einem Operanden.

delete
Der delete-Operator entfernt eine Eigenschaft eines Objektes.
void
Der void-Operator verwirft den Rückgabewert eines Ausdrucks.
typeof
Der typeof-Operator ermittelt den Typ des angegebenen Objekts.
+
Der unäre Plusoperator wandelt seinen Operand in einen Zahlentyp um.
-
Der unäre Negationsoperator wandelt seinen Operand in einen Zahlentyp um und negiert ihn.
~
Bitweiser NICHT-Operator.
!
Logischer NICHT-Operator.

Arithmetische Operatoren

Arithmetische Operatoren nehmen numerische Werte (entweder Literale oder Variablen) als ihre Operanden und geben genau einen numerischen Wert zurück.

+
Additionsoperator.
-
Subtraktionsoperator.
/
Divisionsoperator.
*
Multiplikationsoperator.
%
Restoperator.
**
Potenzierungsoperator.

Vergleichsoperatoren

Ein Vergleichsoperator vergleicht seine Operanden und gibt einen Booleschen Wert zurück, basierend dem Ergebnis des Vergleiches.

in
Der in-Operator ermittelt ob ein Objekt die gegebene Objektvariable enthält.
instanceof
Der instanceof-Operator ermittelt ob ein Objekt eine Instanz eines anderen Objekts ist.
<
Kleiner-als-Operator.
>
Größer-als-Operator.
<=
"Kleiner als oder gleich" - Operator.
>=
"Größer als oder gleich" - Operator.

Hinweis: => is kein Operator, aber die Notation für Pfeilfunktionen.

Gleichheitsoperatoren

Das Ergebnis der Auswertung eines Gleichheitoperators ist immer vom Typ Boolean, basierend auf dem Ergebnis des Vergleiches.

==
Gleichheitsoperator.
!=
Ungleichheitsoperator.
===
Identitätsoperator.
!==
"Nicht Identitäts"-Operator.

Bitweise-Verschieben-Operatoren

Operationen, die alle Bits eines Operanden verschieben.

<<
Operator für bitweises Verschieben nach links.
>>
Operator für bitweises Verschieben nach rechts.
>>>
Operator für vorzeichenloses bitweises Verschieben nach rechts.

Binäre bitweise Operatoren

Bitweise Operatoren behandeln ihre Operanden als eine Menge von 32 Bits und geben einen in JavaScript üblichen numerischen Werte zurück.

&
Bitweises UND.
|
Bitweises ODER.
^
Bitweises XOR.

Binäre logische Operatoren

Logische Operatoren werden normalerweise mit Booleschen (logischen) Werten benutzt und sie liefern dann einen Booleschen Wert zurück.

&&
Logisches UND.
||
Logisches ODER.

Bedingter (ternärer) Operator

(Bedingung ? wennTrue : wennFalse)

Der bedingte Operator liefert einen von zwei Werten zurück, in Abhängigkeit des logischen Wertes der Bedingung.

Zuweisungsoperator

Der Zuweisungsoperator weist seinem linken Operand einen Wert zu, in Abhängigkeit des Wertes seines rechten Operanden.

=
Zuweisungsoperator.
*=
Multiplikationszuweisung.
/=
Teilungszuweisung.
%=
Restzuweisung.
+=
Additionszuweisung.
-=
Subtraktionszuweisung.
<<=
Links-verschieben-Zuweisung.
>>=
Rechts-verschieben-Zuweisung.
>>>=
Vorzeichenlose (unsigned) Rechts-verschieben-Zuweisung.
&=
Bitweise UND-Zuweisung.
^=
Bitweise ENTWEDER-ODER-Zuweisung.
|=
Bitweise ODER-Zuweisung.
[a, b] = [1, 2]
{a, b} = {a:1, b:2}

Destrukturierende Zuweisung ermöglicht das Zuweisen von Daten aus Arrays oder Objekten an Variablen, mit einer ähnlichen Syntax wie bei Array- oder Objekt-Literalen.

Kommaoperator

,

Der Kommaoperator erlaubt es mehrere Ausdrücke innerhalb eines einzigen Ausdrucks zu evaluieren und liefert das Ergebnis des letzten Ausdrucks.

Nicht standardisierte Funktionen

This API has not been standardized. Legacy generator function
Das function Schlüsselwort kann benutzt werden, um eine veraltete Generatorfunktion in einem Ausdruck zu schreiben. Um die Funktion zu einem veralteten Generator zu machen, muss der Funktionskörper mindestens ein yield Ausdruck enthalten.
This API has not been standardized. Expression closures
Die Ausdrucks Closure Syntax ist eine Kurzform für eine einfache Funktion.
This API has not been standardized. [for (x of y) x]
Array Comprehensions.
This API has not been standardized. (for (x of y) y)
Generator Comprehensions.

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 1st Edition (ECMA-262)
Die Definition von 'Expressions' in dieser Spezifikation.
Standard Initiale Definition.
ECMAScript 5.1 (ECMA-262)
Die Definition von 'Expressions' in dieser Spezifikation.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'ECMAScript Language: Expressions' in dieser Spezifikation.
Standard Neu: Spread Syntax, Rest Syntax, destrukturierte Zuweisungen, super Schlüsselwort.
ECMAScript (ECMA-262)
Die Definition von 'ECMAScript Language: Expressions' in dieser Spezifikation.
Lebender Standard  

Browserkompatibilität

BCD tables only load in the browser

Siehe auch