Vergleiche in JavaScript (Vergleiche in JavaScript), Lektion, Seite 722807
https://www.purl.org/stefan_ram/pub/vergleiche_javascript (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
JavaScript-Kurs

Vergleichsoperatoren in JavaScript 

Nach der Behandlung des Kleiner-Operators »<« werden in dieser Lektion hier nun noch die ähnlichen Operatoren »>«, »<=« und »>=« vorgestellt.

Aussprache von Vergleichsausdrücken

»x < y« kann als „x ist kleiner[ als] y“ gesprochen werden.

»x > y« kann als „x ist größer[ als] y“ gesprochen werden.

»x <= y« kann als „x ist kleiner oder gleich y“ oder „x ist kleiner-gleich y“ gesprochen werden.

»x >= y« kann als „x ist größer oder gleich y“ oder „x ist kleiner-gleich y“ gesprochen werden.

Die hier gegebene Aussprache liefert auch schon einen Hinweis auf die weiter unten gegebenen Bedeutungen der genannten Operatoren.

Einführende Beispiele

Falls beide Operandenwerte numerisch sind, so besagt der Operator »>«, daß der erste Wert größer ist (auf dem Zahlenstrahl nach  dem zweiten kommt).

Auswertungen
3 > 2
true

Der Operator »<=« besagt, daß der erste Wert kleiner als der zweite oder ihm gleich ist.

Auswertung
2 <= 3
true
Auswertung
3 <= 3
true

Der Operator »>=« besagt, daß der erste Wert größer als der Zweite oder ihm gleich ist.

Auswertung
2 >= 3
false
Auswertung
3 >= 3
true

Die Syntax von Vergleichsausdrücken

Das folgende Syntaxdiagramm zeigt den Aufbau von Vergleichsausdrücken. Die darin vorkommenden Operatoren »<« und »in« wurden schon früher behandelt.

Syntaxdiagramm (vereinfacht)
Ausdruck
.----------. .-. .----------.
---.--->| Ausdruck |--->( < )---->| Ausdruck |---.--->
| '----------' '-' '----------' |
| |
| .----------. .-. .----------. |
'--->| Ausdruck |--->( > )---->| Ausdruck |---'
| '----------' '-' '----------' |
| |
| .----------. .--. .----------. |
'--->| Ausdruck |--->( <= )--->| Ausdruck |---'
| '----------' '--' '----------' |
| |
| .----------. .--. .----------. |
'--->| Ausdruck |--->( >= )--->| Ausdruck |---'
| '----------' '--' '----------' |
| |
| .----------. .--. .----------. |
'--->| Ausdruck |--->( in )--->| Ausdruck |---'
'----------' '--' '----------'

Die Assoziativitätsrichtung der Vergleichsoperatoren

Die Vergleichsoperatoren sind linksassoziativ. »1<2<3« bedeutet also »(1<2)<3«.

Die Priorität der Vergleichsoperatoren

Die Vergleichsoperatoren haben eine Priorität, die etwas schwächer als die der additiven binären Operator wie »+« oder »-«. »1+2<3« bedeutet also »(1+2)<3«.

Eigenschaften von Operatoren

A P A (A = Aritaet, P = Position [Zirkumfix, Praefix, Infix], A = Assoziativitaet)

() 1 Z Eingeklammerter Ausdruck
+ - typeof 1 P Unaere vorangestellte Operatoren (Vorzeichen)
** 2 I R Potenzieren
* / 2 I L "Punktrechnung": Multiplikation, Division
+ - 2 I L "Strichrechnung": Addition, Subtraktion
< > <= >= 2 I L Kleiner
== != === !== 2 I L Gleichartigkeit, Ungleichartigkeit, Gleichheit, Ungleichheit

Die Semantik der Vergleichsoperatoren

Falls einer der Operandenwerte »NaN« oder «undefined» ist, sollte das Ergebnis eigentlich »undefined« sein, aber weil dieser Operator immer einen Wahrheitswert ergeben soll, ergibt sich »false«.

Die abstrakte Operation von “7.2.14 Abstract Relational Comparison ” ergibt zunächst den Wert «undefined». Der Operator macht daraus dann laut “12.10.3 Runtime Semantics: Evaluation ” jedoch den Wert «false». (Stand 2020).

Der Operator »>«

Der Wert von »x>y« ist gleich dem Wert von »y<x«.

Genauer: Zur Auswertung des Ausdrucks »E >F « mit den beiden Ausdrücken »E « und »F « wird zunächst »E « und dann »F « ausgewertet. Wenn dann »e « der Wert der Auswertung von »E « und »f « der Wert der Auswertung von »F « ist, dann ist der Wert von »E >F « gleich dem Wert der Inkarnation »f <e «.

Der Operator »<=«

Der Wert von »x<=y« ist gleich dem Wert von »!(x>y)«.

Genauer: Zur Auswertung des Ausdrucks »E >F « mit den beiden Ausdrücken »E « und »F « wird zunächst »E « und dann »F « ausgewertet. Wenn dann »e « der Wert der Auswertung von »E « und »f « der Wert der Auswertung von »F « ist, dann ist der Wert von »E >F « gleich der Verneinung des Wertes der Inkarnation »f >e «.

Der Operator »>=«

Der Wert von »x>=y« ist gleich gleich dem Wert von »!(x<y)«.

Ein Ausnahme von dieser Regel stellen Vergleich mit »NaN« oder »undefined« dar, bei denen sich stets »false« ergibt.

Genauer: Zur Auswertung des Ausdrucks »E >F « mit den beiden Ausdrücken »E « und »F « wird zunächst »E « und dann »F « ausgewertet. Wenn dann »e « der Wert der Auswertung von »E « und »f « der Wert der Auswertung von »F « ist, dann ist der Wert von »E >F « gleich der Verneinung des Wertes der Inkarnation »f <e «.

Übungsfragen

?   Übungsfrage

Welchen Wert hat der Ausdruck »3>2>1«?

Bei dieser Übungsfrage soll der Wert einer Auswertung des Ausdrucks vorhergesagt werden, ohne den Wert von einer ECMAScript -Implementation ermitteln zu lassen.

?   Übungsfrage

Was ist die mit einem einzigen Operator ausgedrückte Verneinung des Ausdrucks »x<y«?

Quellen *

ECMAScript 2017: 12.10 Relational Operators

Syntax *

Das folgende Syntaxdiagramm zeigt eine genauere Darstellung der Syntax, die schon die Priorität und Assoziativitätsrichtung enthält.

Syntaxdiagramm *
Vergleichsausdruck
.-----------------.
---.--------------------->| Additivausdruck |---------------------.--->
| '-----------------' |
| |
| .--------------------. .-. .-----------------. |
'--->| Vergleichsausdruck |--->( < )---->| Additivausdruck |---'
| '--------------------' '-' '-----------------' |
| |
| .--------------------. .-. .-----------------. |
'--->| Vergleichsausdruck |--->( > )---->| Additivausdruck |---'
| '--------------------' '-' '-----------------' |
| |
| .--------------------. .--. .-----------------. |
'--->| Vergleichsausdruck |--->( <= )--->| Additivausdruck |---'
| '--------------------' '--' '-----------------' |
| |
| .--------------------. .--. .-----------------. |
'--->| Vergleichsausdruck |--->( >= )--->| Additivausdruck |---'
| '--------------------' '--' '-----------------' |
| |
| .--------------------. .--. .-----------------. |
'--->| Vergleichsausdruck |--->( in )--->| Additivausdruck |---'
'--------------------' '--' '-----------------'

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722807 stefan_ram:722807 Vergleiche in JavaScript Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722807, slrprddef722807, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/vergleiche_javascript