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.
async function*
async function definiert einen asynchron Funktionsausdruck.
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

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.
Expression closures
Die Ausdrucks Closure Syntax ist eine Kurzform für eine einfache Funktion.
[for (x of y) x]
Array Comprehensions.
(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 Latest Draft (ECMA-262)
Die Definition von 'ECMAScript Language: Expressions' in dieser Spezifikation.
Entwurf  

Browserkompatibilität

FunktionChromeEdgeFirefoxInternet ExplorerOperaSafari
Array comprehensions Nein Nein30 — 58 Nein Nein Nein
async function expression55 ?52 Nein4210.1
await55 Ja52 ?4210.1
class42 Ja45 Nein Ja Ja
Comma operator Ja Ja13 Ja Ja
Conditional operator (c ? t : f) Ja Ja1 Ja Ja Ja
delete Ja Ja1 Ja Ja Ja
Destructuring assignment4914411 Nein Ja8
Expression closures Nein Nein3 — 60 Nein Nein Nein
function Ja Ja1 Ja Ja Ja
function* Ja Ja26 Nein Ja10
Generator comprehensions Nein Nein30 — 58 Nein Nein Nein
Grouping operator () Ja Ja1 Ja Ja Ja
in Ja Ja1 Ja Ja Ja
instanceof Ja Ja1 Ja Ja Ja
Legacy generator function Nein Nein2 — 58 Nein Nein Nein
new Ja Ja1 Ja Ja Ja
new.target46 Ja41 Nein Ja Ja
Object initializer1 Ja11 Ja1
Pipeline operator (|>) Nein Nein582 Nein Nein Nein
Property accessors Ja Ja1 Ja Ja Ja
super42 Ja45 Nein Ja Ja
this Ja Ja1 Ja Ja Ja
typeof Ja Ja1 Ja Ja Ja
void Ja Ja1 Ja Ja Ja
yield39 Ja263 Nein Ja10
yield* Ja Ja273 Nein Ja10
FunktionAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Array comprehensions Nein Nein Nein30 — 58 Nein Nein Nein
async function expression5555 ?524210.16.0
await5555 Ja524210.16.0
class4242 Ja45 Ja Ja4.0
Comma operator Ja Ja Ja4 Ja Ja Ja
Conditional operator (c ? t : f) Ja Ja Ja4 Ja Ja Ja
delete Ja Ja Ja4 Ja Ja Ja
Destructuring assignment494914411 Ja85.0
Expression closures Nein Nein Nein4 — 60 Nein Nein Nein
function Ja Ja Ja4 Ja Ja Ja
function* Ja Ja Ja26 Ja10 Ja
Generator comprehensions Nein Nein Nein30 — 58 Nein Nein Nein
Grouping operator () Ja Ja Ja4 Ja Ja Ja
in Ja Ja Ja4 Ja Ja Ja
instanceof Ja Ja Ja4 Ja Ja Ja
Legacy generator function Nein Nein Nein4 — 58 Nein Nein Nein
new Ja Ja Ja4 Ja Ja Ja
new.target4646 Ja41 Ja Ja5.0
Object initializer11 Ja4 Ja1 Ja
Pipeline operator (|>) Nein Nein Nein582 Nein Nein Nein
Property accessors Ja Ja Ja4 Ja Ja Ja
super4242 Ja45 Ja Ja4.0
this Ja Ja Ja4 Ja Ja Ja
typeof Ja Ja Ja4 Ja Ja Ja
void Ja Ja Ja4 Ja Ja Ja
yield3939 Ja263 Ja104.0
yield* Ja Ja Ja273 Ja10 Ja

1. Firefox provided a non-standard destructuring implementation from Firefox 2 to 40.

2. From version 58: this feature is behind the --enable-pipeline-operator compile flag.

3. Starting with Firefox 33, the parsing of the yield expression has been updated to conform with the ES2015 specification.

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: schlagi123, fscholz, loki
Zuletzt aktualisiert von: schlagi123,