Gleichwertigkeit in JavaScript
Der Operator »===« erlaubt es auszudrücken, daß zwei Ausdrücke den gleichen Wert haben.
Einführende Beispiele
Da der linke Ausdruck »2« den gleichen Wert hat wie der rechte Ausdruck »2«, ergibt sich hier der Wahrheitswert »true«.
- Auswertung
2 === 2
true
Da der linke Ausdruck »2« nicht den gleichen Wert hat wie der rechte Ausdruck »2«, ergibt sich hier der Wahrheitswert »false«.
- Auswertung
2 === 6
false
Die lexikalische Einheit »===«
Der Operator »===« besteht aus einer einzigen lexikalischen Einheit »===« aus drei Gleichheitszeichen »=«.
Die Syntax von »===«
Der Operator »===« ist ein binärer Infixoperator, wie beispielsweise auch »+«.
- Neue, erweiterte Syntax
Ausdruck
.----------.
---.----------------->| Literal |-------------------------------.--->
| '----------' ^
| .-. .----------. .-. |
'-------->( ( )--->| Ausdruck |--->( ) )----------------------'
| '-' '----------' '-' |
| .-. .----------. |
'-------->( - )--->| Ausdruck |-------------------------------'
| '-' '----------' |
| .-. .----------. |
'-------->( + )--->| Ausdruck |-------------------------------'
| '-' '----------' |
| .------. .----------. |
'--->( typeof )--->| Ausdruck |-------------------------------'
| '------' '----------' |
| .----------. .-. .----------. |
'----------------->| Ausdruck |--->( * )----->| Ausdruck |----'
| '----------' '-' '----------' |
| .----------. .-. .----------. |
'----------------->| Ausdruck |--->( / )----->| Ausdruck |----'
| '----------' '-' '----------' |
| .----------. .-. .----------. |
'----------------->| Ausdruck |--->( + )----->| Ausdruck |----'
| '----------' '-' '----------' |
| .----------. .-. .----------. |
'----------------->| Ausdruck |--->( - )----->| Ausdruck |----'
| '----------' '-' '----------' |
| .----------. .---. .----------. |
'----------------->| Ausdruck |--->( === )--->| Ausdruck |----'
'----------' '---' '----------'
Prioritäten
Der Operator »===« hat eine schwächere Priorität als die bisher behandelten Operatoren.
- 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 L "Punktrechnung": Multiplikation, Division
+ - 2 I L "Strichrechnung": Addition, Subtraktion
=== 2 I L Gleichheit
Die Semantik von »===«
Dieser Operator ergibt einen Wert vom Typ »boolean«.
Werte unterschiedlicher Typen
Wenn die Typen der beiden Werte sich unterscheiden, ergibt dieser Operator »false«.
- Auswertung
"2" === 2
false
- Auswertung
typeof "2"
"string"
- Auswertung
typeof 2
"number"
Wir nehmen nun im folgenden an, daß die Typen der beiden Operanden gleich sind.
Zahlenwerte
»2.0 === 2« ergibt »true«, da beide Werte den gleichen Typ »number« und den gleichen Wert »2« haben.
- Auswertung
2.0 === 2
true
JavaScript unterscheidet zwar grundsätzlich zwischen einer positiven Null »+0.0« und einer negativen Null »-0.0«, doch dieser Operator sieht diese beiden Nullen als gleich an (was sie mathematisch gesehen ja auch sind).
- Auswertung
+0 === -0
true
Wahrheitswerte
«true» ist nicht gleich «false».
- Auswertung
true === false
false
Zeichenfolgen
Es ergibt sich «true» genau dann, wenn die verglichenen Zeichenfolgen gleich lang und alle Zeichen der verglichenen Zeichenfolgen an der gleichen Position auch genau gleich sind.
- Auswertung
"abc" === "Abc"
false
- Auswertung
typeof "abc" === "string"
true
- Auswertung
typeof "abc" === typeof 123
false