Menu

Truthy & Falsy in JavaScript: Die komplette Liste

Welche Werte in JavaScript als truthy oder falsy gelten, die vollständige Liste aller falsy-Werte und wie die Boolean-Coercion in echtem Code funktioniert.

Jeder Wert hat eine Boolean-Stimmung

In JavaScript darfst du jeden Wert dort hinschreiben, wo eigentlich ein Boolean erwartet wird – in einem if, als Bedingung einer while-Schleife oder neben && bzw. ||. Sobald du das tust, wird der Wert zu true oder false umgewandelt. Werte, die dabei zu false werden, nennt man falsy. Alle anderen sind truthy.

index.js
Output
Click Run to see the output here.

Keine Konvertierungsfunktion, kein expliziter Cast – JavaScript erledigt das von ganz allein. Die Regeln sind festgelegt und überschaubar: Sobald du die Liste der Falsy-Werte kennst, ergibt sich alles andere automatisch.

Die komplette Liste der Falsy-Werte in JavaScript

Genau sieben Werte gelten in JavaScript als falsy. Alles andere in der Sprache ist truthy.

index.js
Output
Click Run to see the output here.

Mehr ist es nicht. Hier die komplette Liste:

  • false — der Boolean selbst.
  • 0 und -0 — beide Nullen.
  • 0n — die BigInt-Null.
  • "" — der leere String (egal ob mit einfachen, doppelten oder Backtick-Anführungszeichen).
  • null — der Wert für "bewusst nichts".
  • undefined — der Wert für "nicht gesetzt".
  • NaN — das Ergebnis ungültiger Rechnungen wie 0 / 0.

Merk dir diese sieben. Wenn du dir bei einem Wert unsicher bist, frag dich einfach: "Ist es einer von den sieben?" Falls nicht, ist er truthy.

Die Stolperfallen: "0", [] und {}

Genau hier tappen Einsteiger gerne rein. Es gibt reichlich Werte, die leer aussehen, aber trotzdem truthy sind:

index.js
Output
Click Run to see the output here.

Strings sind nur dann falsy, wenn sie null Zeichen enthalten. "0" hat ein Zeichen und ist damit truthy. Arrays und Objekte sind dagegen immer truthy – auch leere. JavaScript behandelt sie nämlich als Objekte, und alle Objekte sind truthy, egal was drinsteckt.

Wer von Python kommt, muss hier am stärksten umdenken: In Python sind [] und {} falsy. In JavaScript eben nicht.

So prüfst du richtig auf "leer"

Da [] und {} truthy sind, kannst du sie nicht einfach in ein if packen, um auf Leere zu prüfen. Sei lieber explizit:

index.js
Output
Click Run to see the output here.

Analog bei Strings – wenn du Strings, die nur aus Whitespace bestehen, ebenfalls als leer behandeln willst:

index.js
Output
Click Run to see the output here.

Truthy/falsy ist eine praktische Abkürzung – aber kein Ersatz dafür, sich zu überlegen, was „leer" für deine Daten eigentlich bedeutet.

JavaScript Boolean Coercion: Werte in echte Booleans umwandeln

Manchmal brauchst du wirklich ein true oder false und nicht nur irgendeinen truthy-Wert. Dafür haben sich zwei Schreibweisen etabliert:

index.js
Output
Click Run to see the output here.

Boolean(x) ist die explizite Umwandlung in einen Boolean. !!x macht im Grunde dasselbe, nur kürzer: Das erste ! wandelt den Wert in einen Boolean um und negiert ihn, das zweite ! dreht ihn wieder zurück. Beide Varianten sind üblich. !! ist knapper, Boolean() liest sich dafür klarer.

Die doppelte Negation !! begegnet dir oft in return-Statements, wenn eine Funktion sauber einen Boolean zurückgeben soll:

index.js
Output
Click Run to see the output here.

Truthy und Falsy mit && und ||

Die logischen Operatoren in JavaScript geben nicht etwa true oder false zurück, sondern einen der beiden Operanden. Welcher davon zurückkommt, hängt vom Wahrheitswert (truthy oder falsy) ab:

index.js
Output
Click Run to see the output here.

Genau deshalb ist value || defaultValue ein so beliebtes Muster für Default-Werte. Die Falle dabei: Alle Falsy-Werte werden über einen Kamm geschert – also auch 0 und "", die häufig völlig legitime Eingaben sind:

index.js
Output
Click Run to see the output here.

Wenn du wirklich nur bei null oder undefined auf einen Ersatzwert zurückgreifen willst, nimm lieber den Nullish-Coalescing-Operator ??. Dazu gibt es ein eigenes Kapitel.

Kurzreferenz

index.js
Output
Click Run to see the output here.

Druck dir das aus, klebs an deinen Monitor – und dann weiter im Text.

Als Nächstes: Iteratoren und Generatoren

Bedingungen und Schleifen hast du jetzt drauf. Im nächsten Kapitel geht's darum, wie JavaScript Werte bei Bedarf selbst erzeugen lässt. Iteratoren und Generatoren sind die Mechanik hinter for...of, dem Spread-Operator und vielen modernen APIs – und genau die schauen wir uns jetzt an.

Häufig gestellte Fragen

Welche Werte sind in JavaScript falsy?

Es gibt genau sieben: false, 0, -0, 0n (BigInt-Null), '' (leerer String), null, undefined und NaN. Alles andere ist truthy – auch '0', 'false', [] und {}. Wenn du dir diese kurze Liste einprägst, weißt du für jeden anderen Wert per Ausschlussverfahren automatisch die Antwort.

Ist ein leeres Array in JavaScript truthy oder falsy?

Truthy. if ([]) { ... } führt den Block tatsächlich aus – was alle überrascht, die von Python oder PHP kommen. Arrays und Objekte sind eben Objekte, und Objekte sind immer truthy, egal was drin steht. Um auf ein leeres Array zu prüfen, nimmst du explizit arr.length === 0.

Wie wandle ich einen Wert in einen Boolean um?

Zwei Varianten: Boolean(value) ist die explizite Form, und !!value ist die Kurzschreibweise (eine doppelte Negation, die erst coerced und dann wieder umdreht). Beide folgen denselben Truthy/Falsy-Regeln. Nutze sie immer dann, wenn du wirklich ein true/false brauchst und nicht nur einen truthy-artigen Wert.

Lerne mit Coddy zu programmieren

LOS GEHT'S