Ausdrücke und Operatoren

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

Ausdrücke und Operatoren nach Kategorie

Für eine alphabetische Auflistung siehe die Seitenleiste links.

Primärausdrücke

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

this

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

Literale

Grundlegende null-, boolesche, Zahlen- und Zeichenfolgen-Literale.

[]

Array-Initialisierer/Literal-Syntax.

{}

Objekt-Initialisierer/Literal-Syntax.

function

Das function-Schlüsselwort definiert einen Funktionsausdruck.

class

Das class-Schlüsselwort definiert einen Klassenausdruck.

function*

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

async function

async function definiert einen asynchronen Funktionsausdruck.

async function*

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

/ab+c/i

Reguläre Ausdrucks-Literal-Syntax.

`string`

Template-Literal-Syntax.

( )

Gruppierungsoperator.

Linksseitige Ausdrücke

Linkswerte sind das Ziel einer Zuweisung.

Eigenschaftszugriffe

Member-Operatoren ermöglichen den Zugriff auf eine Eigenschaft oder Methode eines Objekts (object.property und object["property"]).

?.

Der Operator für optionale Verkettungen gibt undefined zurück, anstatt einen Fehler zu verursachen, wenn eine Referenz nullish ist (null oder undefined).

new

Der new-Operator erstellt eine Instanz eines Konstruktors.

new.target

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

import.meta

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

super

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

import()

Die import()-Syntax erlaubt das asynchrone und dynamische Laden eines Moduls in eine potenziell nicht modulare Umgebung.

Inkrement und Dekrement

Postfix/Präfix-Inkrement und Postfix/Präfix-Dekrement-Operatoren.

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 seinen 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 NOT-Operator.

!

Logischer NOT-Operator.

await

Pausiert und setzt eine asynchrone Funktion fort und wartet auf die Erfüllung/zurückweisung des Versprechens.

Arithmetische Operatoren

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

**

Exponentiationsoperator.

*

Multiplikationsoperator.

/

Divisionsoperator.

%

Rest-Operator.

+ (Plus)

Additionsoperator.

-

Subtraktionsoperator.

Relationsoperatoren

Ein Vergleichsoperator vergleicht seine Operanden und gibt einen booleschen Wert zurück, basierend darauf, 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 bestimmte 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 Verschiebeoperatoren

Operationen zum Verschieben aller Bits des Operanden.

<<

Bitweiser Linksverschiebeoperator.

>>

Bitweiser Rechtsverschiebeoperator.

>>>

Bitweiser unsignierter Rechtsverschiebeoperator.

Binäre bitweise Operatoren

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

&

Bitweises UND.

|

Bitweises ODER.

^

Bitweises XOR.

Binäre logische Operatoren

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

&&

Logisches UND.

||

Logisches ODER.

??

Nullish Coalescing-Operator.

Bedingungs (ternäre) Operator

(condition ? ifTrue : ifFalse)

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

Zuweisungsoperatoren

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

=

Zuweisungsoperator.

*=

Multiplikationszuweisung.

/=

Divisionszuweisung.

%=

Restzuweisung.

+=

Additionszuweisung.

-=

Subtraktionszuweisung.

<<=

Linksverschiebezuweisung.

>>=

Rechtsverschiebezuweisung.

>>>=

Unsignierte Rechtsverschiebezuweisung.

&=

Bitweise UND-Zuweisung.

^=

Bitweise XOR-Zuweisung.

|=

Bitweise ODER-Zuweisung.

**=

Exponentiationszuweisung.

&&=

Logische UND-Zuweisung.

||=

Logische ODER-Zuweisung.

??=

Nullish Coalescing-Zuweisung.

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

Die Destrukturierungszuweisung ermöglicht es Ihnen, die Eigenschaften eines Arrays oder Objekts Variablen zuzuweisen, indem eine Syntax verwendet wird, die ähnlich wie Array- oder Objektliterale aussieht.

Yield-Operatoren

yield

Pausiert und setzt eine Generatorfunktion fort.

yield*

Übergibt an eine andere Generatorfunktion oder ein iterierbares Objekt.

Spread-Syntax

...obj

Die Spread-Syntax ermöglicht es, ein iterierbares Objekt, wie ein Array oder eine Zeichenfolge, an Stellen zu erweitern, an denen null oder mehr Argumente (für Funktionsaufrufe) oder Elemente (für Array-Literale) erwartet werden. In einem Objektliteral zählt die Spread-Syntax die Eigenschaften eines Objekts auf und fügt die Schlüssel-Wert-Paare dem erstellten Objekt hinzu.

Komma-Operator

,

Der Komma-Operator ermöglicht es, mehrere Ausdrücke in einer einzigen Anweisung auszuwerten und gibt das Ergebnis des letzten Ausdrucks zurück.

Spezifikationen

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

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Addition (+)
Addition assignment (x += y)
Assignment (x = y)
async function expression
async function* expression
await
Use at module top level
Bitwise AND (a & b)
Bitwise AND assignment (x &= y)
Bitwise NOT (~a)
Bitwise OR (a | b)
Bitwise OR assignment (x |= y)
Bitwise XOR (a ^ b)
Bitwise XOR assignment (x ^= y)
class
Comma operator
Conditional operator (c ? t : f)
Decrement (--)
delete
Destructuring assignment
Computed property names
Rest in arrays
Rest in objects
Division (/)
Division assignment (x /= y)
Equality (a == b)
Exponentiation (**)
Exponentiation assignment (x **= y)
function expression
Trailing comma in parameters
function* expression
Trailing comma in parameters
Greater than (a > b)
Greater than or equal (a >= b)
Grouping operator ()
import
The options parameter
Non-standard
Available in workers
import.meta
import.meta.resolve
in
Increment (++)
Inequality (a != b)
instanceof
Bitwise left shift (a << b)
Left shift assignment (x <<= y)
Less than (a < b)
Less than or equal (a <= b)
Logical AND (&&)
Logical AND assignment (x &&= y)
Logical NOT (!)
Logical OR (||)
Logical OR assignment (x ||= y)
Multiplication (*)
Multiplication assignment (x *= y)
new
new.target
null
Nullish coalescing operator (??)
Nullish coalescing assignment (x ??= y)
Object initializer
Computed property names
Shorthand method names
Shorthand property names
Spread properties
Optional chaining operator (?.)
Property accessors
Remainder (%)
Remainder assignment (x %= y)
Bitwise right shift (a >> b)
Right shift assignment (x >>= y)
Spread syntax (...)
Spread in array literals
Spread in function calls
Spread in object literals
Strict equality (a === b)
Strict inequality (a !== b)
Subtraction (-)
Subtraction assignment (x -= y)
super
this
typeof
Unary negation (-)
Unary plus (+)
Bitwise unsigned right shift (a >>> b)
Unsigned right shift assignment (x >>>= y)
void
yield
yield*

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
Non-standard. Check cross-browser support before using.
See implementation notes.
Has more compatibility info.

Siehe auch