Start · Sprachen · JavaScript · Referenz · Größer als (>)

Größer als (>)

Operator

Der <code>&gt;</code>-Operator gibt <code>true</code> zurück, wenn der linke Operand größer als der rechte Operand ist, andernfalls <code>false</code>.

seit JavaScript ES1 Kategorie: syntax

Signatur

leftOperand > rightOperand

Beschreibung

Der Größer-als-Operator (>) ist ein binärer Vergleichsoperator, der zwei Werte miteinander vergleicht und einen booleschen Wert zurückgibt. Er liefert true, wenn der linke Operand größer als der rechte Operand ist, andernfalls false. Er gehört zu den relationalen Operatoren und wird typischerweise in Bedingungsausdrücken, Schleifen und Sortierfunktionen eingesetzt.

Der Vergleich folgt dem sogenannten Abstract Relational Comparison-Algorithmus aus der ECMAScript-Spezifikation. Dabei werden beide Operanden zunächst in primitive Werte umgewandelt. Sind beide Werte danach Strings, erfolgt ein lexikografischer (zeichenweise, Unicode-basierter) Vergleich. In allen anderen Fällen werden die Werte in Zahlen konvertiert und numerisch verglichen.

Besondere Vorsicht ist bei gemischten Typen geboten: Der Vergleich "10" > "9" ergibt beispielsweise false, da Strings lexikografisch verglichen werden ("1" kommt vor "9"). Der Vergleich 10 > "9" hingegen ergibt true, weil der String "9" in die Zahl 9 umgewandelt wird. Enthält ein Operand NaN, ist das Ergebnis stets false.

Für strikte, typsichere Vergleiche ohne implizite Typumwandlung bieten sich in manchen Situationen explizite Konvertierungen (z. B. mit Number() oder parseInt()) an, bevor der Operator angewendet wird.

Parameter

Name Typ Default Beschreibung
$leftOperand Pflicht number | string | bigint | boolean | null | undefined | object Der linke Wert des Vergleichs. Wird ggf. automatisch in einen primitiven Wert umgewandelt.
$rightOperand Pflicht number | string | bigint | boolean | null | undefined | object Der rechte Wert des Vergleichs. Wird ggf. automatisch in einen primitiven Wert umgewandelt.

Rückgabewert

Typ
boolean
Beschreibung
true, wenn leftOperand größer als rightOperand ist; andernfalls false. Ist einer der Operanden NaN, wird stets false zurückgegeben.

Beispiele

Einfacher numerischer Vergleich

console.log(10 > 5);   // true
console.log(5 > 10);   // false
console.log(5 > 5);    // false

const alter = 20;
if (alter > 18) {
  console.log("Volljährig");
} else {
  console.log("Minderjährig");
}
true false false Volljährig

Lexikografischer String-Vergleich

// Strings werden zeichenweise nach Unicode-Codepunkt verglichen
console.log("banana" > "apple");  // true  ("b" > "a")
console.log("10" > "9");          // false ("1" < "9" im Unicode)
console.log(10 > "9");            // true  (numerischer Vergleich nach Umwandlung)
console.log("abc" > "ABC");       // true  (Kleinbuchstaben haben höhere Codepunkte)
true false true true

Verwendung in einer Sortierfunktion

const zahlen = [42, 7, 19, 3, 100];
zahlen.sort((a, b) => {
  if (a > b) return 1;
  if (a < b) return -1;
  return 0;
});
console.log(zahlen);
[3, 7, 19, 42, 100]

Vergleich mit NaN, null und undefined

console.log(5 > NaN);       // false – NaN-Vergleiche sind stets false
console.log(NaN > 5);       // false
console.log(1 > null);      // true  – null wird zu 0 konvertiert
console.log(1 > undefined); // false – undefined wird zu NaN
console.log(0n > -1n);      // true  – BigInt-Vergleich
false false true false true

// Wichtig · Fallstricke

Gemischte Typen (String vs. Zahl): Wenn nur ein Operand ein String ist, wird der String in eine Zahl umgewandelt. Sind beide Operanden Strings, erfolgt ein lexikografischer Vergleich. Dies führt zu häufigen Fehlern bei Benutzereingaben, die als String vorliegen. Immer explizit konvertieren: Number(eingabe) > 5.

  • BigInt und Number: Der Vergleich zwischen BigInt und Number ist möglich (2n > 1true), aber BigInt kann nicht mit NaN verglichen werden (ergibt false).
  • Objekte: Objekte werden über valueOf() oder toString() in primitive Werte umgewandelt. Das Ergebnis kann daher überraschend sein, wenn diese Methoden überschrieben sind.
  • Kein striktes Äquivalent: Anders als bei == vs. === gibt es für > kein „striktes" Gegenstück ohne Typumwandlung. Explizite Typkonvertierung vor dem Vergleich ist die empfohlene Praxis.