Ausdrücke und Operatoren

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

Ausdrücke und Operatoren nach Kategorie

Für ein alphabetisches Verzeichnis siehe die Seitenleiste auf der linken Seite.

Primärausdrücke

Grundlegende Schlüsselwörter und allgemeine Ausdrücke in JavaScript. Diese Ausdrücke haben die höchste Vorrangigkeit (höher als die Operatoren).

this

Das Schlüsselwort this bezieht sich auf eine spezielle Eigenschaft eines Ausführungskontexts.

Literale

Grundlegende null-, boolesche, Zahlen- und Zeichenfolgenliterale.

[]

Array-Initialisierungs-/Literal-Syntax.

{}

Objekt-Initialisierungs-/Literal-Syntax.

function

Das Schlüsselwort function definiert einen Funktionsausdruck.

class

Das Schlüsselwort class definiert einen Klassenausdruck.

function*

Das Schlüsselwort function* definiert einen Generator-Funktionsausdruck.

async function

Das async function definiert einen asynchronen Funktionsausdruck.

async function*

Die Schlüsselwörter async function* definieren einen asynchronen Generator-Funktionsausdruck.

/ab+c/i

Reguläre Ausdruck-Literal-Syntax.

`string`

Template-Literal-Syntax.

( )

Gruppierungsoperator.

Linke Ausdrücke

Linkswerte sind das Ziel einer Zuweisung.

Property accessors

Mit Member-Operatoren kann auf eine Eigenschaft oder Methode eines Objekts zugegriffen werden (object.property und object["property"]).

?.

Der optionale Verkettungsoperator gibt undefined zurück, anstatt einen Fehler zu verursachen, wenn ein Verweis nullish (null oder undefined) ist.

new

Der new-Operator erstellt eine Instanz eines Konstruktors.

new.target

In Konstruktoren bezieht sich new.target auf den Konstruktor, der von new aufgerufen wurde.

import.meta

Ein Objekt, das kontextspezifische Metadaten für ein JavaScript-Modul bereitstellt.

super

Das Schlüsselwort super ruft den Eltern-Konstruktor auf oder ermöglicht den Zugriff auf Eigenschaften des Elternobjekts.

import()

Die import()-Syntax ermöglicht das asynchrone und dynamische Laden eines Moduls in ein möglicherweise nicht modulares Umfeld.

Inkrement- und Dekrementoperatoren

Postfix/Präfix-Inkrement- und Postfix/Präfix-Dekrementoperatoren.

A++

Postfix-Inkrement-Operator.

A--

Postfix-Dekrement-Operator.

++A

Präfix-Inkrement-Operator.

--A

Präfix-Dekrement-Operator.

Unäre Operatoren

Eine unäre Operation ist eine Operation mit nur einem Operanden.

delete

Der delete-Operator löscht eine Eigenschaft aus einem Objekt.

void

Der void-Operator wertet einen Ausdruck aus und verwirft dessen Rückgabewert.

typeof

Der typeof-Operator bestimmt den Typ eines gegebenen Objekts.

+

Der unäre Plus-Operator konvertiert seinen Operanden in den Zahlentyp.

-

Der unäre Negationsoperator konvertiert seinen Operanden in den Zahlentyp und negiert ihn dann.

~

Bitweiser NICHT-Operator.

!

Logischer NICHT-Operator.

await

Pausieren und Fortsetzen einer asynchronen Funktion und Warten auf die Erfüllung/Ablehnung des Versprechens.

Arithmetische Operatoren

Arithmetische Operatoren nehmen Zahlenwerte (entweder Literale oder Variablen) als ihre Operanden und geben einen einzelnen Zahlenwert zurück.

**

Exponentiationsoperator.

*

Multiplikationsoperator.

/

Divisionsoperator.

%

Restoperator.

+ (Plus)

Additionsoperator.

-

Subtraktionsoperator.

Relationale Operatoren

Ein Vergleichsoperator vergleicht seine Operanden und gibt einen booleschen Wert basierend darauf zurück, ob der Vergleich wahr ist.

< (Kleiner als)

Kleiner-als-Operator.

> (Größer als)

Größer-als-Operator.

<=

Kleiner-als-oder-gleich-Operator.

>=

Größer-als-oder-gleich-Operator.

instanceof

Der instanceof-Operator bestimmt, ob ein Objekt eine Instanz eines anderen Objekts ist.

in

Der in-Operator bestimmt, ob ein Objekt eine gegebene Eigenschaft hat.

Note: => ist kein Operator, sondern die Notation für Arrow-Funktionen.

Gleichheitsoperatoren

Das Ergebnis der Auswertung eines Gleichheitsoperators ist immer vom Typ boolean, basierend darauf, ob der Vergleich wahr ist.

==

Gleichheitsoperator.

!=

Ungleichheitsoperator.

===

Strenger Gleichheitsoperator.

!==

Strenger Ungleichheitsoperator.

Bitweise Verschiebungsoperatoren

Operationen zum Verschieben aller Bits des Operanden.

<<

Bitweiser Linksverschiebungsoperator.

>>

Bitweiser Rechtsverschiebungsoperator.

>>>

Bitweiser Unsigned-Rechtsverschiebungsoperator.

Binäre bitweise Operatoren

Bitweise Operatoren behandeln ihre Operanden als eine Menge von 32 Bit (Nullen und Einsen) und geben Standard-JavaScript-Zahlenwerte zurück.

&

Bitweises UND.

|

Bitweises ODER.

^

Bitweises XOR.

Binäre logische Operatoren

Logische Operatoren implementieren boolesche (logische) Werte und haben Kurzschlussverhalten.

&&

Logisches UND.

||

Logisches ODER.

??

Nullish Coalescing Operator.

Bedingungsoperator (ternärer Operator)

(condition ? ifTrue : ifFalse)

Der Bedingungsoperator gibt einen von zwei Werten zurück, basierend auf dem logischen Wert der Bedingung.

Zuweisungsoperatoren

Ein Zuweisungsoperator ordnet seinem linken Operanden basierend auf dem Wert seines rechten Operanden einen Wert zu.

=

Zuweisungsoperator.

*=

Multiplikationszuweisung.

/=

Divisionszuweisung.

%=

Restzuweisung.

+=

Additionszuweisung.

-=

Subtraktionszuweisung.

<<=

Linksverschiebungszuweisung.

>>=

Rechtsverschiebungszuweisung.

>>>=

Unsigned-Rechtsverschiebungszuweisung.

&=

Bitweises UND-Zuweisung.

^=

Bitweises XOR-Zuweisung.

|=

Bitweises ODER-Zuweisung.

**=

Exponentiationszuweisung.

&&=

Logische UND-Zuweisung.

||=

Logische ODER-Zuweisung.

??=

Nullish-Coalescing-Zuweisung.

[a, b] = arr, { a, b } = obj

Das Destructuring erlaubt Ihnen, die Eigenschaften eines Arrays oder Objekts Variablen zuzuweisen, unter Verwendung einer Syntax, die ähnlich wie bei Array- oder Objektliteralen aussieht.

Yield-Operatoren

yield

Pausieren und Fortsetzen einer Generatorfunktion.

yield*

An einen anderen Generator-Funktion oder iterierbares Objekt delegieren.

Spread-Syntax

...obj

Die Spread-Syntax erlaubt es, ein iterables Objekt, wie ein Array oder eine Zeichenfolge, in Bereichen zu erweitern, in denen null oder mehr Argumente (für Funktionsaufrufe) oder Elemente (für Array-Literale) erwartet werden. In einem Objektliteral enumeriert die Spread-Syntax die Eigenschaften eines Objekts und fügt die Schlüssel-Werte-Paare dem erzeugten Objekt hinzu.

Komma-Operator

,

Der Komma-Operator erlaubt es, mehrere Ausdrücke in einer einzigen Anweisung zu evaluieren und gibt das Ergebnis des letzten Ausdrucks zurück.

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-null-value
ECMAScript® 2025 Language Specification
# sec-generator-function-definitions
ECMAScript® 2025 Language Specification
# sec-async-function-definitions
ECMAScript® 2025 Language Specification
# sec-grouping-operator
ECMAScript® 2025 Language Specification
# prod-SpreadElement
ECMAScript® 2025 Language Specification
# sec-async-generator-function-definitions
ECMAScript® 2025 Language Specification
# sec-relational-operators
ECMAScript® 2025 Language Specification
# sec-multiplicative-operators
ECMAScript® 2025 Language Specification
# sec-unary-plus-operator
ECMAScript® 2025 Language Specification
# sec-subtraction-operator-minus
ECMAScript® 2025 Language Specification
# sec-generator-function-definitions-runtime-semantics-evaluation
ECMAScript® 2025 Language Specification
# sec-assignment-operators
ECMAScript® 2025 Language Specification
# sec-logical-not-operator
ECMAScript® 2025 Language Specification
# sec-class-definitions
HTML
# import-meta-resolve
ECMAScript® 2025 Language Specification
# sec-addition-operator-plus
ECMAScript® 2025 Language Specification
# sec-conditional-operator
ECMAScript® 2025 Language Specification
# sec-property-accessors
ECMAScript® 2025 Language Specification
# prod-PropertyDefinition
ECMAScript® 2025 Language Specification
# sec-left-shift-operator
ECMAScript® 2025 Language Specification
# prod-ArgumentList
ECMAScript® 2025 Language Specification
# sec-object-initializer
ECMAScript® 2025 Language Specification
# prod-YieldExpression
ECMAScript® 2025 Language Specification
# sec-void-operator
ECMAScript® 2025 Language Specification
# sec-equality-operators
ECMAScript® 2025 Language Specification
# prod-CoalesceExpression
ECMAScript® 2025 Language Specification
# sec-bitwise-not-operator
ECMAScript® 2025 Language Specification
# sec-exp-operator
ECMAScript® 2025 Language Specification
# prod-LogicalORExpression
ECMAScript® 2025 Language Specification
# sec-comma-operator
ECMAScript® 2025 Language Specification
# prod-BitwiseORExpression
ECMAScript® 2025 Language Specification
# sec-function-definitions
ECMAScript® 2025 Language Specification
# sec-super-keyword
ECMAScript® 2025 Language Specification
# prod-ImportMeta
ECMAScript® 2025 Language Specification
# sec-import-calls
ECMAScript® 2025 Language Specification
# sec-typeof-operator
ECMAScript® 2025 Language Specification
# sec-postfix-decrement-operator
ECMAScript® 2025 Language Specification
# sec-signed-right-shift-operator
ECMAScript® 2025 Language Specification
# sec-delete-operator
ECMAScript® 2025 Language Specification
# sec-postfix-increment-operator
ECMAScript® 2025 Language Specification
# prod-LogicalANDExpression
ECMAScript® 2025 Language Specification
# prod-BitwiseXORExpression
ECMAScript® 2025 Language Specification
# sec-unary-minus-operator
ECMAScript® 2025 Language Specification
# sec-this-keyword
ECMAScript® 2025 Language Specification
# sec-new-operator
ECMAScript® 2025 Language Specification
# prod-BitwiseANDExpression
ECMAScript® 2025 Language Specification
# sec-unsigned-right-shift-operator
ECMAScript® 2025 Language Specification
# sec-destructuring-assignment
ECMAScript® 2025 Language Specification
# sec-destructuring-binding-patterns
ECMAScript® 2025 Language Specification
# prod-OptionalExpression
ECMAScript® 2025 Language Specification
# sec-built-in-function-objects

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch