| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Less_than | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.
Der Kleiner-als (<)-Operator gibt true zurck, wenn der linke Operand kleiner als der rechte Operand ist, und false andernfalls.
console.log(5 < 3);
// Expected output: false
console.log(3 < 3);
// Expected output: false
// Compare bigint to number
console.log(3n < 5);
// Expected output: true
console.log("aa" < "ab");
// Expected output: true
x < y
Die Operanden werden mit mehreren Runden der Typumwandlung verglichen, die wie folgt zusammengefasst werden knnen:
[Symbol.toPrimitive]() (mit dem Hinweis "number"), valueOf() und toString() in dieser Reihenfolge aufgerufen werden. Der linke Operand wird immer vor dem rechten umgewandelt. Beachten Sie, dass obwohl [Symbol.toPrimitive]() mit dem Hinweis "number" aufgerufen wird (was bedeutet, dass eine leichte Prferenz besteht, dass das Objekt zu einer Zahl wird), der Rckgabewert nicht in eine Zahl umgewandelt wird, da Zeichenketten weiterhin speziell behandelt werden.true und false werden in 1 bzw. 0 umgewandelt.null wird in 0 umgewandelt.undefined wird in NaN umgewandelt.NaN umgewandelt, wenn sie keine numerischen Werte enthalten.NaN ist, gibt der Operator false zurck.Andere Operatoren, darunter >, >= und <=, verwenden denselben Algorithmus wie <. Es gibt zwei Flle, in denen alle vier Operatoren false zurckgeben:
BigInt() bergeben wird).NaN umgewandelt wird. (Zum Beispiel Zeichenketten, die nicht in Zahlen umgewandelt werden knnen, oder undefined.)Fr alle anderen Flle haben die vier Operatoren die folgenden Beziehungen:
x < y === !(x >= y);
x <= y === !(x > y);
x > y === y < x;
x >= y === y <= x;
Hinweis:
Ein beobachtbarer Unterschied zwischen < und > ist die Reihenfolge der Umwandlung, insbesondere wenn die Umwandlung in ein Primitive Nebeneffekte hat. Alle Vergleichsoperatoren wandeln den linken Operand vor dem rechten um.
"a" < "b"; // true
"a" < "a"; // false
"a" < "3"; // false
"\uD855\uDE51" < "\uFF3A"; // true
"5" < 3; // false
"3" < 3; // false
"3" < 5; // true
"hello" < 5; // false
5 < "hello"; // false
"5" < 3n; // false
"3" < 5n; // true
5 < 3; // false
3 < 3; // false
3 < 5; // true
5n < 3; // false
3 < 5n; // true
true < false; // false
false < true; // true
0 < true; // true
true < 1; // false
null < 0; // false
null < 1; // true
undefined < 3; // false
3 < undefined; // false
3 < NaN; // false
NaN < 3; // false
Vergleiche zwingen always ihre Operanden in Primitives um. Dies bedeutet, dass dasselbe Objekt innerhalb eines Vergleichsausdrucks unterschiedliche Werte haben kann. Zum Beispiel knnen Sie zwei Werte haben, die beide grer und kleiner als der andere sind.
class Mystery {
static #coercionCount = -1;
valueOf() {
Mystery.#coercionCount++;
// The left operand is coerced first, so this will return 0
// Then it returns 1 for the right operand
return Mystery.#coercionCount % 2;
}
}
const l = new Mystery();
const r = new Mystery();
console.log(l < r && r < l);
// true
Warnung: Dies kann eine Quelle der Verwirrung sein. Wenn Ihre Objekte eine benutzerdefinierte Logik fr die Umwandlung in Primitives bereitstellen, stellen Sie sicher, dass sie idempotent ist: Mehrere Umwandlungen sollten denselben Wert zurckgeben.
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-relational-operators |
Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |