Start · Sprachen · JavaScript · Kapitel · Operatoren & Ausdrücke
// Kapitel · JavaScript

Operatoren & Ausdrücke

Diese Sektion erklärt die wichtigsten Operatoren in JavaScript: Arithmetik, Vergleiche, logische und Nullish-Operatoren, Optional Chaining und Zuweisungskurzformen. Außerdem geht es darum, wie Ausdrücke ausgewertet werden.

Kurzantwort
Operatoren & Ausdrücke — was ist das?

Diese Sektion erklärt die wichtigsten Operatoren in JavaScript: Arithmetik, Vergleiche, logische und Nullish-Operatoren, Optional Chaining und Zuweisungskurzformen. Außerdem geht es darum, wie Ausdrücke ausgewertet werden.

Ein Ausdruck ist jedes Stück Code, das einen Wert ergibt, zum Beispiel 2 + 3, user.name oder fn(). Operatoren verknüpfen Werte zu neuen Ausdrücken. Wer ihre Regeln kennt, besonders bei Typumwandlung und Kurzschlussauswertung, vermeidet viele typische Bugs.

Arithmetik und Zuweisung

Neben + - * / gibt es % (Rest) und ** (Potenz). Vorsicht: + verkettet Strings, sobald einer der Operanden ein String ist.

const a = 7 % 3;      // 1
const b = 2 ** 10;    // 1024
const c = '5' + 1;    // '51' (String!)
const d = '5' - 1;    // 4 (Zahl)

let count = 0;
count += 5;           // 5
count++;              // 6

Vergleiche: === statt ==

== wandelt Typen vor dem Vergleich um und liefert dadurch überraschende Ergebnisse. Nimm standardmäßig === und !==. Objekte werden über ihre Referenz verglichen, nicht über ihren Inhalt.

0 == '';          // true  (Typumwandlung)
0 === '';         // false
null == undefined; // true
[1] === [1];      // false (verschiedene Referenzen)
Number.isNaN(NaN); // true – NaN === NaN ist false

Logische Operatoren, ?? und ?.

&& und || werten per Kurzschluss aus und geben einen der Operanden zurück, nicht zwingend true oder false. ?? greift nur bei null oder undefined. Dadurch bleiben gültige Werte wie 0 oder '' erhalten. ?. bricht den Zugriff ab, wenn ein Zwischenwert fehlt, und ergibt dann undefined.

const config = { retries: 0 };

const r1 = config.retries || 3;  // 3 – 0 ist falsy
const r2 = config.retries ?? 3;  // 0 – korrekt

const city = user?.address?.city ?? 'unbekannt';
const result = api.fetch?.();    // nur aufrufen, wenn vorhanden

// Logische Zuweisung (ES2021)
config.timeout ??= 5000;
isReady &&= checkState();

Hinweis: ?? darf nicht ohne Klammern mit && oder || kombiniert werden, sonst gibt es einen SyntaxError.

Ternärer Operator und Rangfolge

bedingung ? a : b ist ein Ausdruck und passt deshalb in Template Literals oder Rückgabewerte. Verschachtelte Ternaries werden schnell unleserlich. Im Zweifel lieber if verwenden oder mit Klammern arbeiten.

const label = `${items.length} ${items.length === 1 ? 'Eintrag' : 'Einträge'}`;

const x = 2 + 3 * 4;     // 14 – * vor +
const y = (2 + 3) * 4;   // 20
const z = typeof null;   // 'object' (historischer Fehler)

Best Practice: Setze Klammern, wo die Rangfolge nicht sofort klar ist. Sie kosten nichts und machen die Absicht eindeutig.

Häufige Fragen

Zu welcher Sprache gehört dieses Kapitel?

Dieses Kapitel ist Teil der JavaScript-Referenz auf programmierung.net.

Wie ist das Kapitel aufgebaut?

Jedes Kapitel folgt derselben Struktur: Konzept, Syntax, Beispiele und Randfälle. Code-Beispiele sind kopierfertig und syntax-geprüft.

Wo finde ich die vollständige Übersicht?

Alle Kapitel findest du in der Sidebar oder in der JavaScript-Übersicht. Für Funktionen & Klassen gibt es die separate Referenz.