Start · Sprachen · JavaScript · Referenz · Weniger als oder gleich (<=)

Weniger als oder gleich (<=)

Operator

Der Operator <code>&lt;=</code> gibt <code>true</code> zurück, wenn der linke Operand kleiner als oder gleich dem rechten Operand ist.

seit JavaScript ES1 Kategorie: syntax

Signatur

x <= y

Beschreibung

Der Kleiner-gleich-Operator (<=) ist ein binärer Vergleichsoperator, der zwei Werte miteinander vergleicht und einen booleschen Wert zurückgibt. Er gibt true zurück, wenn der linke Operand kleiner als oder gleich dem rechten Operand ist — andernfalls false.

Der Vergleich folgt denselben abstrakten Regeln wie der Kleiner-als-Operator (<), jedoch mit zusätzlicher Gleichheitsprüfung. Bei Zahlen wird numerisch verglichen, bei Strings lexikografisch (Zeichencode für Zeichencode). Enthält einer der Operanden NaN, ist das Ergebnis stets false. Wenn ein Operand kein String ist, wird er mit denselben Typ-Konvertierungsregeln wie beim <-Operator in einen primitiven Wert umgewandelt (mittels ToPrimitive, bevorzugt valueOf).

Wichtig zu beachten ist der Unterschied zur strikten Gleichheit (===): <= führt bei unterschiedlichen Typen eine implizite Typkonvertierung durch. So ergibt etwa "5" <= 5 den Wert true, weil der String "5" in die Zahl 5 umgewandelt wird. Bei Objekten wird valueOf() oder toString() aufgerufen, um einen primitiven Vergleichswert zu erhalten.

Typische Einsatzgebiete sind Schleifen-Bedingungen, Bereichsprüfungen (z. B. Altersvalidierung, Preisfilter) sowie das Sortieren und Filtern von Datenmengen. Für verlässliche Vergleiche sollte man auf einheitliche Typen achten oder explizit konvertieren (Number(), parseInt() usw.).

Parameter

Name Typ Default Beschreibung
$x Pflicht number | string | boolean | bigint | null | undefined | object Der linke Operand des Vergleichs. Kann ein beliebiger JavaScript-Wert sein; er wird ggf. in einen primitiven Wert konvertiert.
$y Pflicht number | string | boolean | bigint | null | undefined | object Der rechte Operand des Vergleichs. Kann ein beliebiger JavaScript-Wert sein; er wird ggf. in einen primitiven Wert konvertiert.

Rückgabewert

Typ
boolean
Beschreibung
true, wenn x kleiner als oder gleich y ist; sonst false. Enthält ein Operand NaN, ist der Rückgabewert immer false.

Beispiele

Grundlegende Zahlenvergleiche

console.log(3 <= 5);   // true
console.log(5 <= 5);   // true
console.log(7 <= 5);   // false
console.log(-1 <= 0);  // true
console.log(NaN <= 5); // false
true true false true false

Bereichsprüfung in einer Funktion

const isValidAge = (age) => age >= 0 && age <= 120;

console.log(isValidAge(25));  // true
console.log(isValidAge(121)); // false
console.log(isValidAge(-1));  // false
true false false

Schleife mit <= als Abbruchbedingung

const sum = (n) => {
  let total = 0;
  for (let i = 1; i <= n; i++) {
    total += i;
  }
  return total;
};

console.log(sum(10)); // 55
55

Implizite Typkonvertierung bei gemischten Typen

console.log("5" <= 5);     // true  — String wird zu Zahl konvertiert
console.log("10" <= "9"); // true  — lexikografischer String-Vergleich!
console.log(false <= 1);  // true  — false wird zu 0 konvertiert
console.log(null <= 0);   // true  — null wird zu 0 konvertiert
console.log(undefined <= 0); // false — undefined wird zu NaN
true true true true false

// Wichtig · Fallstricke

Fallstricke bei String-Vergleichen: Werden zwei Strings verglichen, erfolgt der Vergleich lexikografisch nach Unicode-Zeichencodes — nicht numerisch. Daher gilt "10" <= "9" als true, weil "1" (U+0031) einen kleineren Code als "9" (U+0039) hat. Für numerische String-Vergleiche sollte man immer explizit in Number umwandeln: Number("10") <= Number("9") ergibt korrekt false.

BigInt-Vergleiche: BigInt-Werte können mit <= direkt gegen normale Zahlen verglichen werden (42n <= 42true), jedoch nicht gegen NaN oder undefined.

null und undefined: null <= 0 ist true (null wird zu 0), aber null == 0 ist false — dieses inkonsistente Verhalten kann zu schwer auffindbaren Bugs führen. undefined <= anything ist stets false, da undefined zu NaN wird.