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

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch