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.
-
Experimental
async function*
async function
definiert einen asynchron Funktionsausdruck.-
Experimental
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
undobject["property"]
). new
- Der
new
Operator erzeugt eine Instanz über einen Konstruktor. - new.target
- In Konstruktoren referenziert
new.target
auf den Konstruktor, welcher mitnew
aufgerufen wurde. super
- Das
super
Schlüsselwort ruft den Elternkonstruktor auf. ...obj
(en-US)- 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
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.
~
(en-US)- Bitweiser NICHT-Operator.
!
(en-US)- Logischer NICHT-Operator.
Arithmetische Operatoren
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. <
(en-US)- Kleiner-als-Operator.
>
(en-US)- Größer-als-Operator.
<=
(en-US)- "Kleiner als oder gleich" - Operator.
>=
(en-US)- "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.
==
(en-US)- Gleichheitsoperator.
!=
(en-US)- Ungleichheitsoperator.
===
(en-US)- Identitätsoperator.
!==
(en-US)- "Nicht Identitäts"-Operator.
Bitweise-Verschieben-Operatoren
Operationen, die alle Bits eines Operanden verschieben.
<<
(en-US)- Operator für bitweises Verschieben nach links.
>>
(en-US)- Operator für bitweises Verschieben nach rechts.
>>>
(en-US)- Operator für vorzeichenloses bitweises Verschieben nach rechts.
Binäre bitweise Operatoren
Binäre logische Operatoren
Logische Operatoren werden normalerweise mit Booleschen (logischen) Werten benutzt und sie liefern dann einen Booleschen Wert zurück.
&&
(en-US)- Logisches UND.
||
(en-US)- 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.
=
(en-US)- Zuweisungsoperator.
*=
(en-US)- Multiplikationszuweisung.
/=
(en-US)- Teilungszuweisung.
%=
(en-US)- Restzuweisung.
+=
(en-US)- Additionszuweisung.
-=
(en-US)- Subtraktionszuweisung.
<<=
(en-US)- Links-verschieben-Zuweisung.
>>=
(en-US)- Rechts-verschieben-Zuweisung.
>>>=
(en-US)- Vorzeichenlose (unsigned) Rechts-verschieben-Zuweisung.
&=
(en-US)- Bitweise UND-Zuweisung.
^=
(en-US)- Bitweise ENTWEDER-ODER-Zuweisung.
|=
(en-US)- 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
- Non-Standard 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 einyield
Ausdruck enthalten. - Non-Standard Expression closures
- Die Ausdrucks Closure Syntax ist eine Kurzform für eine einfache Funktion.
-
Non-Standard
[for (x of y) x]
- Array Comprehensions.
-
Non-Standard
(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